home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Pascal Super Library
/
Pascal Super Library (CW International)(1997).bin
/
LIBRARY
/
OGRID110
/
MANUAL.TXT
< prev
next >
Wrap
Text File
|
1995-06-01
|
431KB
|
15,436 lines
OOGrid Library(TM) v1.0
for Borland/Turbo Pascal (Real Mode/TV)
Copyright (C) 1994
by Arturo J. Monge
Portions Copyright (C) 1989,1990
by Borland International, Inc.
OOGrid Library(TM) v1.0
Documentation
TABLE OF CONTENTS
ABOUT THE DOCUMENTATION . . . . . . . . . . . . . . . . . . . . . . . . . 1
HOW TO CONTACT THE AUTHOR . . . . . . . . . . . . . . . . . . . . . . . . 1
I. UNITS DESCRIPTION . . . . . . . . . . . . . . . . . . . . . . . . . . 2
GLEQUATES.PAS Unit . . . . . . . . . . . . . . . . . . . . . . . . . 3
GLSORT.PAS Unit . . . . . . . . . . . . . . . . . . . . . . . . . . 3
GLSUPPRT.PAS Unit . . . . . . . . . . . . . . . . . . . . . . . . . 4
GLTSHEET.PAS Unit . . . . . . . . . . . . . . . . . . . . . . . . . 4
GLTVR_US.PAS Unit . . . . . . . . . . . . . . . . . . . . . . . . . 4
GLVIEWS.PAS Unit . . . . . . . . . . . . . . . . . . . . . . . . . . 5
GLWINDOW.PAS Unit . . . . . . . . . . . . . . . . . . . . . . . . . 5
II. IDENTIFIERS DESCRIPTION . . . . . . . . . . . . . . . . . . . . . . . 6
BlockOperation type . . . . . . . . . . . . . . . . . . . . . . . . 6
CellPos type . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
CellTypes type . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
ChangeHeaderDialog function . . . . . . . . . . . . . . . . . . . . 6
ChangeXXXX constants . . . . . . . . . . . . . . . . . . . . . . . . 7
ClipBoard variable . . . . . . . . . . . . . . . . . . . . . . . . . 7
ClipBoardRecord type . . . . . . . . . . . . . . . . . . . . . . . . 7
cmXXXX constants . . . . . . . . . . . . . . . . . . . . . . . . . . 8
ColStartArray type . . . . . . . . . . . . . . . . . . . . . . . . . 9
CommasPart constant . . . . . . . . . . . . . . . . . . . . . . . . 9
CreateOOGLDialogs procedure . . . . . . . . . . . . . . . . . . . . 9
CreateOOGLStrings procedure . . . . . . . . . . . . . . . . . . . . 10
CSheetInputLine constant . . . . . . . . . . . . . . . . . . . . . . 11
CSpreadSheet constant . . . . . . . . . . . . . . . . . . . . . . . 11
CSpreadSheetWindow1 constant . . . . . . . . . . . . . . . . . . . . 12
CSpreadSheetWindow2 constant . . . . . . . . . . . . . . . . . . . . 13
CSpreadSheetXXXX constants . . . . . . . . . . . . . . . . . . . . . 14
CurrencyCharPart constant . . . . . . . . . . . . . . . . . . . . . 14
CurrencyPart constant . . . . . . . . . . . . . . . . . . . . . . . 15
CurrencyShift constant . . . . . . . . . . . . . . . . . . . . . . . 15
CurrencyStr type . . . . . . . . . . . . . . . . . . . . . . . . . . 15
DecPlacesPart constant . . . . . . . . . . . . . . . . . . . . . . . 16
DefaultXXXX constants . . . . . . . . . . . . . . . . . . . . . . . 16
DisplayMessage function . . . . . . . . . . . . . . . . . . . . . . 17
DisplayXXXX constants . . . . . . . . . . . . . . . . . . . . . . . 18
EditXXXX constants . . . . . . . . . . . . . . . . . . . . . . . . . 18
Empty variable . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
EraseMessage procedure . . . . . . . . . . . . . . . . . . . . . . . 19
FixFormulaCol procedure . . . . . . . . . . . . . . . . . . . . . . 19
FixFormulaRow procedure . . . . . . . . . . . . . . . . . . . . . . 20
FormatDialog function . . . . . . . . . . . . . . . . . . . . . . . 20
FormatType type . . . . . . . . . . . . . . . . . . . . . . . . . . 21
FormulaOps type . . . . . . . . . . . . . . . . . . . . . . . . . . 21
FormulaStart function . . . . . . . . . . . . . . . . . . . . . . . 22
GetColWidth function . . . . . . . . . . . . . . . . . . . . . . . . 22
GetColWidthFunc type . . . . . . . . . . . . . . . . . . . . . . . . 23
GetWidthDialog function . . . . . . . . . . . . . . . . . . . . . . 23
GLResFile variable . . . . . . . . . . . . . . . . . . . . . . . . . 23
GLSortExit procedure . . . . . . . . . . . . . . . . . . . . . . . . 24
GLStringList variable . . . . . . . . . . . . . . . . . . . . . . . 24
GoToDialog function . . . . . . . . . . . . . . . . . . . . . . . . 24
i
hcXXXX constants . . . . . . . . . . . . . . . . . . . . . . . . . . 25
InitClipboard procedure . . . . . . . . . . . . . . . . . . . . . . 27
InitCommandNumber constant . . . . . . . . . . . . . . . . . . . . . 27
InitHelpContextNumber constant . . . . . . . . . . . . . . . . . . . 27
InitObjectTypeID constant . . . . . . . . . . . . . . . . . . . . . 28
InitStandardContextNumber constant . . . . . . . . . . . . . . . . . 28
InputLine function . . . . . . . . . . . . . . . . . . . . . . . . . 28
Justification type . . . . . . . . . . . . . . . . . . . . . . . . . 29
JustPart constant . . . . . . . . . . . . . . . . . . . . . . . . . 29
Keyposition type . . . . . . . . . . . . . . . . . . . . . . . . . . 30
KeyValue type . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
MessageLine variable . . . . . . . . . . . . . . . . . . . . . . . . 31
ModifiedXXXX constants . . . . . . . . . . . . . . . . . . . . . . . 31
NumberFormatShift constant . . . . . . . . . . . . . . . . . . . . . 31
OOGridFileHeader constant . . . . . . . . . . . . . . . . . . . . . 32
PasteDialog function . . . . . . . . . . . . . . . . . . . . . . . . 32
PrintDialog function . . . . . . . . . . . . . . . . . . . . . . . . 32
PrinterConfigRec variable . . . . . . . . . . . . . . . . . . . . . 33
PrintingDialog function . . . . . . . . . . . . . . . . . . . . . . 33
PrintToDialog function . . . . . . . . . . . . . . . . . . . . . . . 33
RBlock constant . . . . . . . . . . . . . . . . . . . . . . . . . . 34
RChangeHeader variable . . . . . . . . . . . . . . . . . . . . . . . 34
RChangeWidth variable . . . . . . . . . . . . . . . . . . . . . . . 34
RCopyFormulas variable . . . . . . . . . . . . . . . . . . . . . . . 35
RedrawXXXX constants . . . . . . . . . . . . . . . . . . . . . . . . 35
RegisterGLCell procedure . . . . . . . . . . . . . . . . . . . . . . 35
RegisterGLSupprt procedure . . . . . . . . . . . . . . . . . . . . . 36
RegisterGLTSheetInputLine procedure . . . . . . . . . . . . . . . . 36
RegisterGLViews procedure . . . . . . . . . . . . . . . . . . . . . 36
RegisterSpreadSheet procedure . . . . . . . . . . . . . . . . . . . 37
RemoveXXXX constants . . . . . . . . . . . . . . . . . . . . . . . . 37
RepeatFirstChar constant . . . . . . . . . . . . . . . . . . . . . . 37
RepeatTextChar constant . . . . . . . . . . . . . . . . . . . . . . 38
RFormat variable . . . . . . . . . . . . . . . . . . . . . . . . . . 38
RFormulaCell constant . . . . . . . . . . . . . . . . . . . . . . . 38
RGoToCell variable . . . . . . . . . . . . . . . . . . . . . . . . . 39
RLimScrollBar constant . . . . . . . . . . . . . . . . . . . . . . . 39
RPrint variable . . . . . . . . . . . . . . . . . . . . . . . . . . 40
RRepeatCell constant . . . . . . . . . . . . . . . . . . . . . . . . 40
RSheetInputLine constant . . . . . . . . . . . . . . . . . . . . . . 41
RSortInfo variable . . . . . . . . . . . . . . . . . . . . . . . . . 41
RSpreadSheet constant . . . . . . . . . . . . . . . . . . . . . . . 41
RTextCell constant . . . . . . . . . . . . . . . . . . . . . . . . . 42
RValueCell constant . . . . . . . . . . . . . . . . . . . . . . . . 42
ScreenColRange type . . . . . . . . . . . . . . . . . . . . . . . . 43
ScreenCols constant . . . . . . . . . . . . . . . . . . . . . . . . 43
ScreenPos type . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
ScreenRowRange type . . . . . . . . . . . . . . . . . . . . . . . . 44
ScreenRows constant . . . . . . . . . . . . . . . . . . . . . . . . 44
SortDialog function . . . . . . . . . . . . . . . . . . . . . . . . 45
SortingDialog function . . . . . . . . . . . . . . . . . . . . . . . 45
SortTypes type . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
StandardSortObject variable . . . . . . . . . . . . . . . . . . . . 45
stRXXXX constants . . . . . . . . . . . . . . . . . . . . . . . . . 46
stXXXX constants . . . . . . . . . . . . . . . . . . . . . . . . . . 46
sXXXX constants . . . . . . . . . . . . . . . . . . . . . . . . . . 47
TBlock object . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Anchor field . . . . . . . . . . . . . . . . . . . . . . . . . 48
ii
AnchorColShifted field . . . . . . . . . . . . . . . . . . . . 49
AnchorRowShifted field . . . . . . . . . . . . . . . . . . . . 49
CellInBlock function . . . . . . . . . . . . . . . . . . . . . 50
ExtendTo funcition . . . . . . . . . . . . . . . . . . . . . . 50
Init CONSTRUCTOR . . . . . . . . . . . . . . . . . . . . . . . 50
Load CONSTRUCTOR . . . . . . . . . . . . . . . . . . . . . . . 51
Start field . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Stop field . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Store procedure . . . . . . . . . . . . . . . . . . . . . . . . 52
TCell object . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
CellType function . . . . . . . . . . . . . . . . . . . . . . . 53
CopyString function . . . . . . . . . . . . . . . . . . . . . . 53
CurrValue function . . . . . . . . . . . . . . . . . . . . . . 54
DisplayString function . . . . . . . . . . . . . . . . . . . . 54
Done DESTRUCTOR . . . . . . . . . . . . . . . . . . . . . . . . 55
EditString procedure . . . . . . . . . . . . . . . . . . . . . 55
Format function . . . . . . . . . . . . . . . . . . . . . . . . 55
FormattedString function . . . . . . . . . . . . . . . . . . . 56
HashError function . . . . . . . . . . . . . . . . . . . . . . 57
Init CONSTRUCTOR . . . . . . . . . . . . . . . . . . . . . . . 57
LegalValue function . . . . . . . . . . . . . . . . . . . . . . 58
Loc field . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Name function . . . . . . . . . . . . . . . . . . . . . . . . . 58
OverwriteStart function . . . . . . . . . . . . . . . . . . . . 59
Overwritten function . . . . . . . . . . . . . . . . . . . . . 59
ShouldUpdate function . . . . . . . . . . . . . . . . . . . . . 60
Width function . . . . . . . . . . . . . . . . . . . . . . . . 61
TCellHashTable object . . . . . . . . . . . . . . . . . . . . . . . 61
Add function . . . . . . . . . . . . . . . . . . . . . . . . . 62
CreateItem procedure . . . . . . . . . . . . . . . . . . . . . 62
CurrCell field . . . . . . . . . . . . . . . . . . . . . . . . 62
CurrLoc field . . . . . . . . . . . . . . . . . . . . . . . . . 63
Delete procedure . . . . . . . . . . . . . . . . . . . . . . . 63
Done DESTRUCTOR . . . . . . . . . . . . . . . . . . . . . . . . 64
FirstItem function . . . . . . . . . . . . . . . . . . . . . . 64
Found function . . . . . . . . . . . . . . . . . . . . . . . . 64
HashValue function . . . . . . . . . . . . . . . . . . . . . . 65
Init CONSTRUCTOR . . . . . . . . . . . . . . . . . . . . . . . 65
ItemSize function . . . . . . . . . . . . . . . . . . . . . . . 66
Load procedure . . . . . . . . . . . . . . . . . . . . . . . . 66
NextItem function . . . . . . . . . . . . . . . . . . . . . . . 67
Search function . . . . . . . . . . . . . . . . . . . . . . . . 67
Store procedure . . . . . . . . . . . . . . . . . . . . . . . . 68
TEmptyCell object . . . . . . . . . . . . . . . . . . . . . . . . . 68
CellType function . . . . . . . . . . . . . . . . . . . . . . . 69
CopyString function . . . . . . . . . . . . . . . . . . . . . . 69
CurrValue function . . . . . . . . . . . . . . . . . . . . . . 69
DisplayString function . . . . . . . . . . . . . . . . . . . . 70
EditString procedure . . . . . . . . . . . . . . . . . . . . . 70
Format function . . . . . . . . . . . . . . . . . . . . . . . . 70
FormattedString function . . . . . . . . . . . . . . . . . . . 71
HasError function . . . . . . . . . . . . . . . . . . . . . . . 71
Init CONSTRUCTOR . . . . . . . . . . . . . . . . . . . . . . . 71
LegalValue function . . . . . . . . . . . . . . . . . . . . . . 71
Name function . . . . . . . . . . . . . . . . . . . . . . . . . 72
OverwriteStart function . . . . . . . . . . . . . . . . . . . . 72
Overwritten function . . . . . . . . . . . . . . . . . . . . . 72
ShouldUpdate function . . . . . . . . . . . . . . . . . . . . . 72
iii
Width function . . . . . . . . . . . . . . . . . . . . . . . . 73
TFormatHashTable object . . . . . . . . . . . . . . . . . . . . . . 73
Add function . . . . . . . . . . . . . . . . . . . . . . . . . 74
CreateItem procedure . . . . . . . . . . . . . . . . . . . . . 74
CurrFormat field . . . . . . . . . . . . . . . . . . . . . . . 74
CurrStart field . . . . . . . . . . . . . . . . . . . . . . . . 75
CurrStop field . . . . . . . . . . . . . . . . . . . . . . . . 75
Delete function . . . . . . . . . . . . . . . . . . . . . . . . 76
Done DESTRUCTOR . . . . . . . . . . . . . . . . . . . . . . . . 76
Found function . . . . . . . . . . . . . . . . . . . . . . . . 76
HashValue function . . . . . . . . . . . . . . . . . . . . . . 77
Init CONSTRUCTOR . . . . . . . . . . . . . . . . . . . . . . . 77
ItemSize function . . . . . . . . . . . . . . . . . . . . . . . 77
Load procedure . . . . . . . . . . . . . . . . . . . . . . . . 77
Overwrite function . . . . . . . . . . . . . . . . . . . . . . 78
Search function . . . . . . . . . . . . . . . . . . . . . . . . 78
Store procedure . . . . . . . . . . . . . . . . . . . . . . . . 79
TFormulaCell object . . . . . . . . . . . . . . . . . . . . . . . . 79
CellType function . . . . . . . . . . . . . . . . . . . . . . . 80
CopyString function . . . . . . . . . . . . . . . . . . . . . . 80
CurrValue function . . . . . . . . . . . . . . . . . . . . . . 80
DisplayString function . . . . . . . . . . . . . . . . . . . . 81
Done DESTRUCTOR . . . . . . . . . . . . . . . . . . . . . . . . 81
EditString procedure . . . . . . . . . . . . . . . . . . . . . 81
Error field . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Format function . . . . . . . . . . . . . . . . . . . . . . . . 82
FormattedString function . . . . . . . . . . . . . . . . . . . 82
Formula field . . . . . . . . . . . . . . . . . . . . . . . . . 82
GetFormula function . . . . . . . . . . . . . . . . . . . . . . 82
HasError function . . . . . . . . . . . . . . . . . . . . . . . 83
Init CONSTRUCTOR . . . . . . . . . . . . . . . . . . . . . . . 83
LegalValue function . . . . . . . . . . . . . . . . . . . . . . 83
Load CONSTRUCTOR . . . . . . . . . . . . . . . . . . . . . . . 83
Name function . . . . . . . . . . . . . . . . . . . . . . . . . 84
OverwriteStart function . . . . . . . . . . . . . . . . . . . . 84
Overwritten function . . . . . . . . . . . . . . . . . . . . . 84
ShouldUpdate function . . . . . . . . . . . . . . . . . . . . . 84
Store procedure . . . . . . . . . . . . . . . . . . . . . . . . 85
Value field . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Width function . . . . . . . . . . . . . . . . . . . . . . . . 85
THashTable object . . . . . . . . . . . . . . . . . . . . . . . . . 85
Add function . . . . . . . . . . . . . . . . . . . . . . . . . 86
THeadersHashTable object . . . . . . . . . . . . . . . . . . . . . . 86
Add function . . . . . . . . . . . . . . . . . . . . . . . . . 87
CreateItem procedure . . . . . . . . . . . . . . . . . . . . . 87
CurrCol field . . . . . . . . . . . . . . . . . . . . . . . . . 88
CurrName field . . . . . . . . . . . . . . . . . . . . . . . . 88
Delete procedure . . . . . . . . . . . . . . . . . . . . . . . 88
Done DESTRUCTOR . . . . . . . . . . . . . . . . . . . . . . . . 89
Found function . . . . . . . . . . . . . . . . . . . . . . . . 89
HashValue function . . . . . . . . . . . . . . . . . . . . . . 89
Init CONSTRUCTOR . . . . . . . . . . . . . . . . . . . . . . . 89
ItemSize function . . . . . . . . . . . . . . . . . . . . . . . 90
Load procedure . . . . . . . . . . . . . . . . . . . . . . . . 90
Search function . . . . . . . . . . . . . . . . . . . . . . . . 90
SearchName function . . . . . . . . . . . . . . . . . . . . . . 91
Store procedure . . . . . . . . . . . . . . . . . . . . . . . . 91
TLimScrollBar object . . . . . . . . . . . . . . . . . . . . . . . . 91
iv
Change function . . . . . . . . . . . . . . . . . . . . . . . . 92
DisplayLimit field . . . . . . . . . . . . . . . . . . . . . . 92
Draw procedure . . . . . . . . . . . . . . . . . . . . . . . . 93
HandleEvent procedure . . . . . . . . . . . . . . . . . . . . . 93
Init CONSTRUCTOR . . . . . . . . . . . . . . . . . . . . . . . 94
Load CONSTRUCTOR . . . . . . . . . . . . . . . . . . . . . . . 94
OldValue field . . . . . . . . . . . . . . . . . . . . . . . . 95
Store procedure . . . . . . . . . . . . . . . . . . . . . . . . 95
TMessageLine object . . . . . . . . . . . . . . . . . . . . . . . . 95
Draw procedure . . . . . . . . . . . . . . . . . . . . . . . . 96
Init CONSTRUCTOR . . . . . . . . . . . . . . . . . . . . . . . 96
StatusMessage field . . . . . . . . . . . . . . . . . . . . . . 96
ToggleClipBoardOff procedure . . . . . . . . . . . . . . . . . . . . 97
ToggleClipBoardOn procedure . . . . . . . . . . . . . . . . . . . . 97
TOverwriteHashTable object . . . . . . . . . . . . . . . . . . . . . 98
Add function . . . . . . . . . . . . . . . . . . . . . . . . . 98
Change function . . . . . . . . . . . . . . . . . . . . . . . . 99
CreateItem procedure . . . . . . . . . . . . . . . . . . . . . 100
CurrCell field . . . . . . . . . . . . . . . . . . . . . . . . 100
CurrPos field . . . . . . . . . . . . . . . . . . . . . . . . . 100
Delete procedure . . . . . . . . . . . . . . . . . . . . . . . 101
Done DESTRUCTOR . . . . . . . . . . . . . . . . . . . . . . . . 102
EndCol field . . . . . . . . . . . . . . . . . . . . . . . . . 102
Found function . . . . . . . . . . . . . . . . . . . . . . . . 103
HashValue function . . . . . . . . . . . . . . . . . . . . . . 103
Init CONSTRUCTOR . . . . . . . . . . . . . . . . . . . . . . . 103
ItemSize function . . . . . . . . . . . . . . . . . . . . . . . 103
Search function . . . . . . . . . . . . . . . . . . . . . . . . 104
TRepeatCell object . . . . . . . . . . . . . . . . . . . . . . . . . 104
CellType function . . . . . . . . . . . . . . . . . . . . . . . 105
CopyString function . . . . . . . . . . . . . . . . . . . . . . 105
CurrValue function . . . . . . . . . . . . . . . . . . . . . . 105
DisplayString function . . . . . . . . . . . . . . . . . . . . 106
EditString procedure . . . . . . . . . . . . . . . . . . . . . 106
Format function . . . . . . . . . . . . . . . . . . . . . . . . 106
FormattedString function . . . . . . . . . . . . . . . . . . . 106
HasError function . . . . . . . . . . . . . . . . . . . . . . . 106
Init CONSTRUCTOR . . . . . . . . . . . . . . . . . . . . . . . 107
LegalValue function . . . . . . . . . . . . . . . . . . . . . . 107
Load CONSTRUCTOR . . . . . . . . . . . . . . . . . . . . . . . 107
Name function . . . . . . . . . . . . . . . . . . . . . . . . . 107
OverwriteStart function . . . . . . . . . . . . . . . . . . . . 108
Overwritten function . . . . . . . . . . . . . . . . . . . . . 108
RepeatChar field . . . . . . . . . . . . . . . . . . . . . . . 108
ShouldUpdate function . . . . . . . . . . . . . . . . . . . . . 108
Store procedure . . . . . . . . . . . . . . . . . . . . . . . . 109
Width function . . . . . . . . . . . . . . . . . . . . . . . . 109
TScreenArea object . . . . . . . . . . . . . . . . . . . . . . . . . 109
Attrib field . . . . . . . . . . . . . . . . . . . . . . . . . 110
Init CONSTRUCTOR . . . . . . . . . . . . . . . . . . . . . . . 110
LowerRight field . . . . . . . . . . . . . . . . . . . . . . . 110
PointInArea function . . . . . . . . . . . . . . . . . . . . . 111
UpperLeft field . . . . . . . . . . . . . . . . . . . . . . . . 111
TSheetInputLine object . . . . . . . . . . . . . . . . . . . . . . . 111
EndModal procedure . . . . . . . . . . . . . . . . . . . . . . 112
EndState field . . . . . . . . . . . . . . . . . . . . . . . . 112
Execute function . . . . . . . . . . . . . . . . . . . . . . . 113
GetPalette function . . . . . . . . . . . . . . . . . . . . . . 113
v
HandleEvent procedure . . . . . . . . . . . . . . . . . . . . . 113
Init CONSTRUCTOR . . . . . . . . . . . . . . . . . . . . . . . 114
SetState procedure . . . . . . . . . . . . . . . . . . . . . . 114
TSortObject object . . . . . . . . . . . . . . . . . . . . . . . . . 115
CurrentKeyPosition function . . . . . . . . . . . . . . . . . . 115
CurrentRowPosition function . . . . . . . . . . . . . . . . . . 116
CurrKey field . . . . . . . . . . . . . . . . . . . . . . . . . 117
FillKeyRec procedure . . . . . . . . . . . . . . . . . . . . . 117
Init CONSTRUCTOR . . . . . . . . . . . . . . . . . . . . . . . 117
KeyCols field . . . . . . . . . . . . . . . . . . . . . . . . . 118
KeySortOrder field . . . . . . . . . . . . . . . . . . . . . . 118
LastKey field . . . . . . . . . . . . . . . . . . . . . . . . . 118
PivotFirstKey field . . . . . . . . . . . . . . . . . . . . . . 119
PivotSecondKey field . . . . . . . . . . . . . . . . . . . . . 119
PivotThirdKey field . . . . . . . . . . . . . . . . . . . . . . 119
QuickSort procedure . . . . . . . . . . . . . . . . . . . . . . 120
SetKeyArray function . . . . . . . . . . . . . . . . . . . . . 120
SetPivot procedure . . . . . . . . . . . . . . . . . . . . . . 121
Sort procedure . . . . . . . . . . . . . . . . . . . . . . . . 121
SortBlock field . . . . . . . . . . . . . . . . . . . . . . . . 122
SourceCellHash field . . . . . . . . . . . . . . . . . . . . . 122
SplitSortBlock procedure . . . . . . . . . . . . . . . . . . . 122
SwapRows procedure . . . . . . . . . . . . . . . . . . . . . . 123
TSpreadSheet object . . . . . . . . . . . . . . . . . . . . . . . . 123
AddCell function . . . . . . . . . . . . . . . . . . . . . . . 127
AutoCalc field . . . . . . . . . . . . . . . . . . . . . . . . 127
BlankArea field . . . . . . . . . . . . . . . . . . . . . . . . 128
BlockOn field . . . . . . . . . . . . . . . . . . . . . . . . . 128
CellHash field . . . . . . . . . . . . . . . . . . . . . . . . 128
CellHashStart function . . . . . . . . . . . . . . . . . . . . 129
CellsProtected function . . . . . . . . . . . . . . . . . . . . 129
CellToFString function . . . . . . . . . . . . . . . . . . . . 129
ChangeBounds procedure . . . . . . . . . . . . . . . . . . . . 130
ChangeColHeaders procedure . . . . . . . . . . . . . . . . . . 130
ChangeColWidth procedure . . . . . . . . . . . . . . . . . . . 131
CheckForDragging procedure . . . . . . . . . . . . . . . . . . 131
ClearCurrBlock procedure . . . . . . . . . . . . . . . . . . . 131
ClearScreenArea procedure . . . . . . . . . . . . . . . . . . . 132
ColArea field . . . . . . . . . . . . . . . . . . . . . . . . . 132
ColHeadersHash field . . . . . . . . . . . . . . . . . . . . . 132
ColHeadersHashStart function . . . . . . . . . . . . . . . . . 133
ColStart field . . . . . . . . . . . . . . . . . . . . . . . . 133
ColToX function . . . . . . . . . . . . . . . . . . . . . . . . 133
ColumnToString function . . . . . . . . . . . . . . . . . . . . 134
ColWidth function . . . . . . . . . . . . . . . . . . . . . . . 134
ContentsArea field . . . . . . . . . . . . . . . . . . . . . . 134
CopyCellBlock procedure . . . . . . . . . . . . . . . . . . . . 135
CurrBlock field . . . . . . . . . . . . . . . . . . . . . . . . 135
CurrPos field . . . . . . . . . . . . . . . . . . . . . . . . . 135
DataArea field . . . . . . . . . . . . . . . . . . . . . . . . 136
DefaultColWidth field . . . . . . . . . . . . . . . . . . . . . 136
DefaultCurrency field . . . . . . . . . . . . . . . . . . . . . 136
DefaultDecimalPlaces field . . . . . . . . . . . . . . . . . . 137
DeleteBlock procedure . . . . . . . . . . . . . . . . . . . . . 137
DeleteCell procedure . . . . . . . . . . . . . . . . . . . . . 137
DeleteColFromHash procedure . . . . . . . . . . . . . . . . . . 138
DeleteColHeaders procedure . . . . . . . . . . . . . . . . . . 138
DeleteColumns procedure . . . . . . . . . . . . . . . . . . . . 139
vi
DeleteRowFromHash procedure . . . . . . . . . . . . . . . . . . 139
DeleteRows procedure . . . . . . . . . . . . . . . . . . . . . 140
DisplayAllCells procedure . . . . . . . . . . . . . . . . . . . 140
DisplayArea field . . . . . . . . . . . . . . . . . . . . . . . 140
DisplayBlankArea procedure . . . . . . . . . . . . . . . . . . 141
DisplayBlock procedure . . . . . . . . . . . . . . . . . . . . 141
DisplayBlockDiff procedure . . . . . . . . . . . . . . . . . . 142
DisplayCell procedure . . . . . . . . . . . . . . . . . . . . . 142
DisplayCellBlock procedure . . . . . . . . . . . . . . . . . . 142
DisplayCellData procedure . . . . . . . . . . . . . . . . . . . 143
DisplayCols procedure . . . . . . . . . . . . . . . . . . . . . 143
DisplayFormulas field . . . . . . . . . . . . . . . . . . . . . 144
DisplayHeaders field . . . . . . . . . . . . . . . . . . . . . 144
DisplayInfo procedure . . . . . . . . . . . . . . . . . . . . . 144
DisplayRows procedure . . . . . . . . . . . . . . . . . . . . . 145
DoAfterEndInput procedure . . . . . . . . . . . . . . . . . . . 145
Done DESTRUCTOR . . . . . . . . . . . . . . . . . . . . . . . . 145
DoneHashTables procedure . . . . . . . . . . . . . . . . . . . 146
DragCursorWithMouse procedure . . . . . . . . . . . . . . . . . 146
Draw procedure . . . . . . . . . . . . . . . . . . . . . . . . 146
EmptyRowsAtBottom field . . . . . . . . . . . . . . . . . . . . 147
EmptyRowsAtTop field . . . . . . . . . . . . . . . . . . . . . 147
EraseCellBlock procedure . . . . . . . . . . . . . . . . . . . 148
ExtendCurrBlock procedure . . . . . . . . . . . . . . . . . . . 148
FindLastPos procedure . . . . . . . . . . . . . . . . . . . . . 148
FindScreenColStart procedure . . . . . . . . . . . . . . . . . 149
FindScreenColStop procedure . . . . . . . . . . . . . . . . . . 149
FindScreenRowStop procedure . . . . . . . . . . . . . . . . . . 150
FindScreenRowStart procedure . . . . . . . . . . . . . . . . . 150
FixBlockOverWrite procedure . . . . . . . . . . . . . . . . . . 150
FixOverWrite function . . . . . . . . . . . . . . . . . . . . . 151
FormatDefault procedure . . . . . . . . . . . . . . . . . . . . 151
FormulaHash field . . . . . . . . . . . . . . . . . . . . . . . 152
FStringSituationColor function . . . . . . . . . . . . . . . . 152
GetFormat procedure . . . . . . . . . . . . . . . . . . . . . . 152
GetPalette function . . . . . . . . . . . . . . . . . . . . . . 153
GoToCell procedure . . . . . . . . . . . . . . . . . . . . . . 153
GoToEnd field . . . . . . . . . . . . . . . . . . . . . . . . . 153
HandleEvent procedure . . . . . . . . . . . . . . . . . . . . . 154
HandleInput procedure . . . . . . . . . . . . . . . . . . . . . 154
InfoArea field . . . . . . . . . . . . . . . . . . . . . . . . 155
Init CONSTRUCTOR . . . . . . . . . . . . . . . . . . . . . . . 155
InitCurrPos procedure . . . . . . . . . . . . . . . . . . . . . 156
InsertColumns procedure . . . . . . . . . . . . . . . . . . . . 157
InsertRows procedure . . . . . . . . . . . . . . . . . . . . . 157
InsertRowToHash procedure . . . . . . . . . . . . . . . . . . . 157
KeyPressed field . . . . . . . . . . . . . . . . . . . . . . . 158
LastPos field . . . . . . . . . . . . . . . . . . . . . . . . . 158
Load CONSTRUCTOR . . . . . . . . . . . . . . . . . . . . . . . 159
LoadDelimited procedure . . . . . . . . . . . . . . . . . . . . 159
LoadHashTables procedure . . . . . . . . . . . . . . . . . . . 159
LoadTablesFromTempFile procedure . . . . . . . . . . . . . . . 160
LocateCursorWithMouse procedure . . . . . . . . . . . . . . . . 161
MaxCols field . . . . . . . . . . . . . . . . . . . . . . . . . 161
MaxColWidth field . . . . . . . . . . . . . . . . . . . . . . . 161
MaxDecimalPlaces field . . . . . . . . . . . . . . . . . . . . 162
MaxRows field . . . . . . . . . . . . . . . . . . . . . . . . . 162
MaxScreenCols field . . . . . . . . . . . . . . . . . . . . . . 162
vii
Modified field . . . . . . . . . . . . . . . . . . . . . . . . 163
MoveCell procedure . . . . . . . . . . . . . . . . . . . . . . 163
MoveCellBlock procedure . . . . . . . . . . . . . . . . . . . . 163
MoveDown procedure . . . . . . . . . . . . . . . . . . . . . . 164
MoveHome procedure . . . . . . . . . . . . . . . . . . . . . . 164
MoveLeft procedure . . . . . . . . . . . . . . . . . . . . . . 164
MovePgDown procedure . . . . . . . . . . . . . . . . . . . . . 165
MovePgLeft procedure . . . . . . . . . . . . . . . . . . . . . 165
MovePgRight procedure . . . . . . . . . . . . . . . . . . . . . 165
MovePgUp procedure . . . . . . . . . . . . . . . . . . . . . . 165
MoveRight procedure . . . . . . . . . . . . . . . . . . . . . . 166
MoveUp procedure . . . . . . . . . . . . . . . . . . . . . . . 166
NoBlankArea field . . . . . . . . . . . . . . . . . . . . . . . 166
Number field . . . . . . . . . . . . . . . . . . . . . . . . . 167
OldCurrPos field . . . . . . . . . . . . . . . . . . . . . . . 167
OverwriteHash field . . . . . . . . . . . . . . . . . . . . . . 167
OverwriteHashStart function . . . . . . . . . . . . . . . . . . 168
Parser function . . . . . . . . . . . . . . . . . . . . . . . . 168
PasteBlock procedure . . . . . . . . . . . . . . . . . . . . . 168
PasteCellBlock procedure . . . . . . . . . . . . . . . . . . . 169
Print procedure . . . . . . . . . . . . . . . . . . . . . . . . 169
Recalc procedure . . . . . . . . . . . . . . . . . . . . . . . 169
RowArea field . . . . . . . . . . . . . . . . . . . . . . . . . 170
RowNumberSpace field . . . . . . . . . . . . . . . . . . . . . 170
RowToY function . . . . . . . . . . . . . . . . . . . . . . . . 171
SameCellPos function . . . . . . . . . . . . . . . . . . . . . 171
ScrollDraw procedure . . . . . . . . . . . . . . . . . . . . . 171
SelectColumn function . . . . . . . . . . . . . . . . . . . . . 172
SetAreas procedure . . . . . . . . . . . . . . . . . . . . . . 172
SetBlankArea procedure . . . . . . . . . . . . . . . . . . . . 172
SetChanged procedure . . . . . . . . . . . . . . . . . . . . . 173
SetLimit procedure . . . . . . . . . . . . . . . . . . . . . . 173
SetLocked procedure . . . . . . . . . . . . . . . . . . . . . . 174
SetNameWithMouse procedure . . . . . . . . . . . . . . . . . . 174
SetNumber procedure . . . . . . . . . . . . . . . . . . . . . . 174
SetProtection procedure . . . . . . . . . . . . . . . . . . . . 175
SetScreenColStop procedure . . . . . . . . . . . . . . . . . . 175
SetScreenColStart procedure . . . . . . . . . . . . . . . . . . 176
SetScreenRowStop procedure . . . . . . . . . . . . . . . . . . 176
SetScreenRowStart procedure . . . . . . . . . . . . . . . . . . 176
SetState procedure . . . . . . . . . . . . . . . . . . . . . . 177
SetUnlocked procedure . . . . . . . . . . . . . . . . . . . . . 177
SheetProtected field . . . . . . . . . . . . . . . . . . . . . 178
SortData procedure . . . . . . . . . . . . . . . . . . . . . . 178
SortObject function . . . . . . . . . . . . . . . . . . . . . . 178
Store procedure . . . . . . . . . . . . . . . . . . . . . . . . 179
StoreHashTables procedure . . . . . . . . . . . . . . . . . . . 179
StoreTablesToTempFile procedure . . . . . . . . . . . . . . . . 179
ToggleAutoCalc procedure . . . . . . . . . . . . . . . . . . . 180
ToggleDisplayHeaders procedure . . . . . . . . . . . . . . . . 180
ToggleEnd procedure . . . . . . . . . . . . . . . . . . . . . . 180
ToggleFormulaDisplay procedure . . . . . . . . . . . . . . . . 181
ToogleBlockOn procedure . . . . . . . . . . . . . . . . . . . . 181
TotalRows field . . . . . . . . . . . . . . . . . . . . . . . . 181
TrackCursor function . . . . . . . . . . . . . . . . . . . . . 181
UnlockedHash field . . . . . . . . . . . . . . . . . . . . . . 182
UpdateScreenBlockDisplay procedure . . . . . . . . . . . . . . 182
WidthHash field . . . . . . . . . . . . . . . . . . . . . . . . 182
viii
WidthHashStart function . . . . . . . . . . . . . . . . . . . . 183
XToCol fuction . . . . . . . . . . . . . . . . . . . . . . . . 183
YToRow function . . . . . . . . . . . . . . . . . . . . . . . . 183
TSpreadSheetWindow object . . . . . . . . . . . . . . . . . . . . . 184
GetPalette function . . . . . . . . . . . . . . . . . . . . . . 184
Init CONSTRUCTOR . . . . . . . . . . . . . . . . . . . . . . . 184
SizeLimits procedure . . . . . . . . . . . . . . . . . . . . . 185
StandardScrollBar function . . . . . . . . . . . . . . . . . . 185
TTextCell object . . . . . . . . . . . . . . . . . . . . . . . . . . 186
CellType function . . . . . . . . . . . . . . . . . . . . . . . 187
CopyString function . . . . . . . . . . . . . . . . . . . . . . 187
CurrValue function . . . . . . . . . . . . . . . . . . . . . . 187
DisplayString function . . . . . . . . . . . . . . . . . . . . 187
Done DESTRUCTOR . . . . . . . . . . . . . . . . . . . . . . . . 187
EditString procedure . . . . . . . . . . . . . . . . . . . . . 188
Format function . . . . . . . . . . . . . . . . . . . . . . . . 188
FormattedString function . . . . . . . . . . . . . . . . . . . 188
HasError function . . . . . . . . . . . . . . . . . . . . . . . 188
Init CONSTRUCTOR . . . . . . . . . . . . . . . . . . . . . . . 188
LegalValue function . . . . . . . . . . . . . . . . . . . . . . 189
Load CONSTRUCTOR . . . . . . . . . . . . . . . . . . . . . . . 189
Name function . . . . . . . . . . . . . . . . . . . . . . . . . 189
OverwriteStart function . . . . . . . . . . . . . . . . . . . . 189
Overwritten function . . . . . . . . . . . . . . . . . . . . . 190
ShouldUpdate function . . . . . . . . . . . . . . . . . . . . . 190
Store procedure . . . . . . . . . . . . . . . . . . . . . . . . 190
Txt field . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
Width function . . . . . . . . . . . . . . . . . . . . . . . . 191
TUnlockedHashTable object . . . . . . . . . . . . . . . . . . . . . 191
Add function . . . . . . . . . . . . . . . . . . . . . . . . . 192
CreateItem procedure . . . . . . . . . . . . . . . . . . . . . 192
CurrStart field . . . . . . . . . . . . . . . . . . . . . . . . 192
CurrStop field . . . . . . . . . . . . . . . . . . . . . . . . 193
Delete procedure . . . . . . . . . . . . . . . . . . . . . . . 193
Done DESTRUCTOR . . . . . . . . . . . . . . . . . . . . . . . . 193
Found function . . . . . . . . . . . . . . . . . . . . . . . . 194
HashValue function . . . . . . . . . . . . . . . . . . . . . . 194
Init CONSTRUCTOR . . . . . . . . . . . . . . . . . . . . . . . 194
ItemSize function . . . . . . . . . . . . . . . . . . . . . . . 194
Load CONSTRUCTOR . . . . . . . . . . . . . . . . . . . . . . . 194
Overwrite function . . . . . . . . . . . . . . . . . . . . . . 195
Search function . . . . . . . . . . . . . . . . . . . . . . . . 195
Store procedure . . . . . . . . . . . . . . . . . . . . . . . . 195
TValueCell object . . . . . . . . . . . . . . . . . . . . . . . . . 196
CellType function . . . . . . . . . . . . . . . . . . . . . . . 197
CopyString function . . . . . . . . . . . . . . . . . . . . . . 197
CurrValue function . . . . . . . . . . . . . . . . . . . . . . 197
DisplayString function . . . . . . . . . . . . . . . . . . . . 197
EditString procedure . . . . . . . . . . . . . . . . . . . . . 197
Error field . . . . . . . . . . . . . . . . . . . . . . . . . . 198
Format function . . . . . . . . . . . . . . . . . . . . . . . . 198
FormattedString function . . . . . . . . . . . . . . . . . . . 198
HasError function . . . . . . . . . . . . . . . . . . . . . . . 198
Init CONSTRUCTOR . . . . . . . . . . . . . . . . . . . . . . . 198
LegalValue function . . . . . . . . . . . . . . . . . . . . . . 199
Load CONSTRUCTOR . . . . . . . . . . . . . . . . . . . . . . . 199
Name function . . . . . . . . . . . . . . . . . . . . . . . . . 199
OverwriteStart function . . . . . . . . . . . . . . . . . . . . 200
ix
Overwritten function . . . . . . . . . . . . . . . . . . . . . 200
ShouldUpdate function . . . . . . . . . . . . . . . . . . . . . 200
Store procedure . . . . . . . . . . . . . . . . . . . . . . . . 200
Value field . . . . . . . . . . . . . . . . . . . . . . . . . . 200
Width function . . . . . . . . . . . . . . . . . . . . . . . . 201
TWidthHashTable object . . . . . . . . . . . . . . . . . . . . . . . 201
Add function . . . . . . . . . . . . . . . . . . . . . . . . . 202
CreateItem function . . . . . . . . . . . . . . . . . . . . . . 202
CurrCol field . . . . . . . . . . . . . . . . . . . . . . . . . 202
CurrWidth field . . . . . . . . . . . . . . . . . . . . . . . . 203
DefaultColWidth field . . . . . . . . . . . . . . . . . . . . . 203
Delete procedure . . . . . . . . . . . . . . . . . . . . . . . 203
Done DESTRUCTOR . . . . . . . . . . . . . . . . . . . . . . . . 204
Found function . . . . . . . . . . . . . . . . . . . . . . . . 204
GetDefaultColWidth function . . . . . . . . . . . . . . . . . . 204
HashValue function . . . . . . . . . . . . . . . . . . . . . . 205
Init CONSTRUCTOR . . . . . . . . . . . . . . . . . . . . . . . 205
ItemSize function . . . . . . . . . . . . . . . . . . . . . . . 205
Load procedure . . . . . . . . . . . . . . . . . . . . . . . . 205
Search function . . . . . . . . . . . . . . . . . . . . . . . . 206
Store procedure . . . . . . . . . . . . . . . . . . . . . . . . 206
UpdatingTablesDialog function . . . . . . . . . . . . . . . . . . . 207
INDEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
x
ABOUT THE DOCUMENTATION
This documentation provides reference information about all the units and
source code in OOGrid Library(TM) v1.0. It is intended to be used as a
reference - not as a tutorial. If you are new to OOGrid Library(TM) v1.0,
read the README.TXT file first; it provides general information about this
library and how to use it in your applications, which you can complement by
studying the source code of the demo programs.
The documentation is organized in two sections: UNITS DESCRIPTION and
IDENTIFIERS DESCRIPTION. In the units description section, there is a short
description of almost eVery unit in this library (the units GLPARSER.PAS,
GLLSTR.PAS, TCHASH.PAS and TCUTIL.PAS are not documented). In the
identifiers description section, there is a description -- in alphabetical
order -- of all objects, variables, procedures, functions, types and
constants declared in those units. Each identifier description has the
identifier declaration, the unit in which it is declared, its function, its
parameters' description (if any) and important remarks about the identifier
(if any).
If you want to get a general overview of the objects in this library, read
the description of each of the units in this library; then, try browsing the
objects' descriptions and its attributes and methods's functions.
However, the documentation becomes more useful when you actually begin
working with the objects. If you need to know what a method does, why a
variable was declared, or what is the purpose of an object's attribute,
simply read its description in this documentation. The description should
help you understand the function of an identifier and its relation with other
identifiers.
HOW TO CONTACT THE AUTHOR
If you don't find the information you need in this documentation, or if you
have any comments or suggestions about OOGrid Library(TM) v1.0 or its
documentation, please feel free to contact the author at any of the addresses
listed below:
E-MAIL:
INTERNET: mongev@cariari.ucr.ac.cr
CLEVELAND FREENET: fh441@freenet.cleveland.edu
MAIL:
Arturo J. Monge
SJO 1684; POB 025216
Miami, FL 33102-5216
Sending correspondence via electronic mail is strongly preferred.
1
I. UNITS DESCRIPTION
************************************************************************
GLCELL.PAS Unit
************************************************************************
This unit implements the different types of cells and hash tables used by
TSpreadsheet. The hash tables are the objects used to store information in
OOGrid Library(TM) v1.0 and are descendants of Borland's HashTable object.
For more information, see TCHASH.PAS (in Turbo Pascal 6.0).
Basically, this unit is the same as Borland's TCCELL.PAS but with a larga
amount of modifications which were necessary for adapting the unit's objects
for use by TSpreadSheet.
The hash tables implemented in this unit are:
a) THashTable : A HashTable's descendant that checks the value of the
LowMemory function before adding a cell to the hash table. All hash
tables in this unit are descendants of THashTable.
b) TCellHashTable: Stores the cells in a spreadsheet.
c) TWidthHashTable: Stores column widths that are different from the
default column width.
d) TFormatHashTable: Stores formatting information for blocks of cells
in a spreadsheet.
e) TOverWriteHashTable: Stores information about empty cells that are
overwritten by the information in other cells.
f) TColumnHeadersHashTable: Stores custom assigned column headers.
g) TUnlockedCellHashTable: Stores the location of block of cells that
are marked as 'unlocked' (see TSpreadSheet.SetUnlocked and
TSpreadSheet.SetLocked )
The cell objects implemented in this unit are:
a) TCell : This is an abstract cell object. All cell objects are
descendants of TCell.
b) TEmptyCell : Cell object used when working with empty cells in the
spreadsheet. Only one instance of TEmptyCell is constructed since all
empty cells behave exactly the same way.
b) TTextCell : Cell object that stores a string.
c) TValueCell : Cell object that stores a value.
d) TFormulaCell : Cell object that stores a formula and its result.
e) TRepeatCell : Cell object that stores a character; this character
will be repeated when the cell is displayed.
2
GLCell also implements several functions for handling formulas and declares
additional support variables, constants and types (used mostly by objects in
this unit).
************************************************************************
GLEQUATES.PAS Unit
************************************************************************
The GLEQUATES unit defines all command and help context constants that are
used by the TSpreadSheet object (the main object) and its resources. The
help context constants are only used when creating the resource file used by
TSpreadSheet; the command constants are used too when creating the resource
file, but are also used by TSpreadSheet's HandleEvent method.
The constants in the GLEQUATES units are organized in four groups:
a) Standard Help Contexts: these are help context constants used by
standard buttons in all dialogs in OOGrid Library(TM) v1.0. These
standard buttons include 'YES', 'NO', 'OK', 'CANCEL', which are assigned
the help context values hcYes, hcNo, hcOk and hcCancel, respectively.
b) Help contexts: these are help context constants used by all dialogs
and views in OOGrid Library(TM) v1.0. Some of these constants are
organized in groups of two or three to indicate that they are part of a
cluster and therefore, all constants in the group must have consecutive
values.
c) Commands: these are command constants used by all dialogs in OOGrid
Library(TM) v1.0; they are also used by TSpreadSheet's HandleEvent
method.
d) Object Type ID's: these are the object type ID's used in the stream
registration records in OOGrid Library(TM) v1.0.
There are four particular constants that let you easily change the values of
all the constants in the GLEQUATES units:
a) InitStandardContextNumber: indicates the starting number of the
sequence of values that will be assigned to the standard help contexts.
b) InitHelpContextNumber: indicates the starting number of the sequence
of values that will be assigned to the help contexts used by the dialogs
and views in OOGrid Library(TM) v1.0.
c) InitCommandNumber: indicates the starting number of the sequence of
values that will be assigned to the commands used by the dialogs in
OOGrid Library(TM) v1.0 and by the TSpreadSheet object.
d) InitObjectTypeID: indicates the starting number of the sequence of
values that will be assigned to the list of object types ID's (used in
the stream registration records in OOGrid Library(TM) v1.0).
************************************************************************
GLSORT.PAS Unit
************************************************************************
The GLSORT unit implements an object (TSortObject) that can sort the rows of
a block of cells in a THashTable object (see GLCELL.PAS), using three
3
different sort keys in either ascending or descending order. The list is
sorted using the QuickSort algorithm.
The unit also declares the StandardSortObject variable. This variable is
initialized with a pointer to an instance of TSortObject. When TSpreadSheet
needs a service from TSortObject, it calls its SortObject function, which
returns the value stored in the StandardSortObject variable. If you need to
use a different sort object, simply override TSpreadSheet's SortObject
function to return a pointer to the new object (the new object must be a
TSortObject's descendant).
************************************************************************
GLSUPPRT.PAS Unit
************************************************************************
The GLSUPPRT unit declares additional constants, variables, types and
objects.
It implements the resource support needed by TSpreadSheet, by declaring the
GLResFile and GLStringList variables (which indicate TSpreadSheet where to
find its resources) and the string list index constants. It declares
additional stream status constants, default constants that can be used when
constructing a new instance of TSpreadSheet, and a PrinterConfigRec variable
-- initialized with printer default values also declared in this unit -- that
is used by TSpreadSheet's Print method.
The CellPos record, used throughout OOGrid Library(TM) v1.0, is also declared
in this unit, along with the TBlock and TScreenArea objects, and some other
screen related constants, records and types.
************************************************************************
GLTSHEET.PAS Unit
************************************************************************
This is the main unit in OOGrid Library(TM) v1.0. The GLTSHEET unit
implements the TSpreadSheet object.
To add spreadsheet capabilities to your applications, you will need to
construct an instance of TSpreadSheet or a descendant.
************************************************************************
GLTVR_US.PAS Unit
************************************************************************
The GLTVR_US unit exports to functions that are are used to create
TSpreadsheet's resources: CreateOOGLDialogs and CreateOOGLStrings.
It implements several functions that create the dialogs, which are called by
the CreateOOGLDialogs function. If you need to change any of the dialogs,
you will need to modify one or more of this functions. If you need to change
the text in the spreadsheet, you will need to modify the CreateOOGLStrings
function.
4
************************************************************************
GLVIEWS.PAS Unit
************************************************************************
The GLVIEWS unit implements three TView's descendants and defines the record
variables used by the SetData and GetData methods of all the dialogs in
OOGrid Library(TM) v1.0.
The implemented views are:
a) TSheetInputLine: a TInputLine's descendant that can be inserted in a
TSpreadSheetWindow (see GLWINDOW.PAS) and in modal state.
b) TLimScrollBar: a TScrollBar's decendant that can be used to scroll
over a large area, while display the scrolling over a smaller area.
c) TMessageLine: A TView's descendat that is used to display messages at
the status line. TMessageLine is used by the DisplayMessage and
EraseMessage functions also implemented in this unit.
************************************************************************
GLWINDOW.PAS Unit
************************************************************************
The GLWINDOW unit implements a TWindow's descendant, TSpreadSheetWindow,
that can own a TSpreadSheet object.
This unit also declares the additional palette entries that must be added to
Turbo Vision's standard application palette
************************************************************************
5
II. IDENTIFIERS DESCRIPTION
************************************************************************
BlockOperation type
************************************************************************
DECLARATION:
BlockOperation = (opCopy, opMove);
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Used by the clipboard record to indicate what kind of operation was
requested.
************************************************************************
CellPos type
************************************************************************
DECLARATION:
CellPos = record
Col : Word;
Row : Word;
end; {...CellPos }
UNIT:
GLSUPPRT.PAS
DESCRIPTION:
Stores the position of a cell in the spreadsheet.
************************************************************************
CellTypes type
************************************************************************
DECLARATION:
CellTypes = (ClEmpty, ClValue, ClText, ClFormula, ClRepeat);
UNIT:
GLCELL.PAS
DESCRIPTION:
Enumerates all the available cell types in OOGrid Library(TM) v1.0.
************************************************************************
ChangeHeaderDialog function
************************************************************************
DECLARATION:
function ChangeHeaderDialog : PDialog;
6
UNIT:
GLTVR_US.PAS
DESCRIPTION:
(see CreateOOGLDialogs)
************************************************************************
ChangeXXXX constants
************************************************************************
DECLARATION:
ChangeYes = True;
ChangeNo = False;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Used with TOverwriteHashTable's Add and Delete methods to indicate if
overwrite information for surrounding cells should be changed if
necessary.
************************************************************************
ClipBoard variable
************************************************************************
DECLARATION:
Clipboard : ClipBoardRecord;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
This variable is used to store the information necessary for copy and
move operations.
(see ClipBoardRecord, TSpreadSheet.CopyCellBlock,
TSpreadSheet.MoveCellBlock)
************************************************************************
ClipBoardRecord type
************************************************************************
DECLARATION:
ClipBoardRecord = RECORD
Active : Boolean;
SourceSpreadSheet : PSpreadSheet;
SourceCellHash : PCellHashTable;
BlockToCopy : PBlock;
CopyBlock : Boolean;
Operation : BlockOperation;
end; {...ClipBoardRecord }
7
UNIT:
GLTSHEET.PAS
DESCRIPTION:
This record is used to store information necessary for copy and move
operations.
REMARKS:
(see TSpreadSheet.CopyCellBlock, TSpreadSheet.MoveCellBlock)
************************************************************************
cmXXXX constants
************************************************************************
UNIT:
GLEQUATES.PAS
DESCRIPTION:
The following is a description of all commands in Grid Library(TM) v1.0.
The values of this constants depend on the value assigned to the
InitCommandNumber constant.
Constant Description
-----------------------------------------------------------------
cmChangeColHeaders Change the header of the selected columns
cmChangeColWidth Change the width of the selected columns
cmDeleteColHeaders Delete the header of the selected columns
cmDeleteColumns Delete the selected columns
cmDeleteRows Delete the selected rows
cmEditCell Edit the contents of the selected cell
cmFormatCells Format the selected cells
cmFormatDefault Erase all format information about the
selected cells
cmGoToCell Go to a new cell in the spreadsheet
cmInsertColumns Insert a column(s) in the selected area
cmInsertRows Insert a row(s) in the selected area
cmNewSheet Should be used by your application if you
want to be able to create new spreadsheets
without cancelling a copy or move
operation
cmPrintSheet Prints a spreadsheet
cmRecalc Recalculates the values of the cells in
the spreadsheet
cmToggleAutoCalc Turns on/off the automatic recaculation of
cells
cmToggleFormulas Display/Hides formulas
cmToggleHeaders Display/Hides custom assigned headers
cmToggleProtection Protects/Unprotects the contents of a
spreadsheet
cmSetLocked Mark the selected cells as locked (the
default state)
cmSetUnlocked Mark the selected cells as unlocked
8
cmSortData Sorts by rows the selected cells
************************************************************************
ColStartArray type
************************************************************************
DECLARATION:
ColStartArray = array[0..ScreenCols] of Byte;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Array used to store the screen columns where the columns of the
spreadsheet will be displayed.
************************************************************************
CommasPart constant
************************************************************************
DECLARATION:
CommasPart = $80;
UNIT:
GLCELL.PAS
DESCRIPTION:
Bits in a cell's format value that indicate if a number should be
displayed with commas.
REMARKS:
(see FormatType)
************************************************************************
CreateOOGLDialogs procedure
************************************************************************
DECLARATION:
procedure CreateOOGLDialogs(ResourceFile: PResourceFile);
UNIT:
GLTVR_US.PAS
DESCRIPTION:
Creates and adds each of the dialogs used in OOGrid Library(TM) v1.0 to
the given resource file.
PARAMETERS' DESCRIPTION:
ResourceFile : the resource file where the views will be stored.
9
REMARKS:
This procedure calls several private functions. Each of these functions
returns a pointer to a dialog (with the exception of the InputLine
function, which returns a pointer to a TSheetInputLine object). The
following is a list of all the functions and string indexes used to add
each view to the resource file:
Private Function String Index
-------------------------------------------------------
FormatDialog 'FormatDialog'
PasteDialog 'FormulasDialog'
GoToDialog 'GoToDialog'
ChangeHeaderDialog 'ChangeHeaderDialog'
PrintDialog 'PrintDialog'
SortDialog 'SortDialog'
GetWidthDialog 'GetWidthDialog'
InputLine 'InputLine'
PrintToDialog 'PrintToDialog'
PrintingDialog 'PrintingDialog'
SortingDialog 'SortingDialog'
UpdatingTablesDialog 'UpdatingTablesDialog'
**The dialogs were created using David Baldwin's Dialog Design program.
(see GLResFile)
************************************************************************
CreateOOGLStrings procedure
************************************************************************
DECLARATION:
procedure CreateOOGLStrings(ResourceFile: PResourceFile);
UNIT:
GLTVR_US.PAS
DESCRIPTION:
Creates the string list used by objects in OOGrid Library(TM) v1.0 and
adds it to the given resource file.
PARAMETERS' DESCRIPTION:
ResourceFile : the resource file where the string list will be
stored.
REMARKS:
(see GLStringList)
10
************************************************************************
CSheetInputLine constant
************************************************************************
DECLARATION:
CSheetInputLine = #9#9#10#11;
UNIT:
GLVIEWS.PAS
DESCRIPTION:
TSheetInputLine's palette.
REMARKS:
CSheetInputLine palette layout:
1 = Passive
2 = Active
3 = Arrow
4 = Selected
************************************************************************
CSpreadSheet constant
************************************************************************
DECLARATION:
CSpreadSheet =
#12#13#14#15#16#17#18#19#20#21#22#23#24#25#26#27#28#29#30+
#31#32#33#34#35#36;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Color palette of the TSpreadSheet object.
REMARKS:
CSpreadSheet palette layout:
1 = Empty Cell
2 = Value Cell
3 = Text Cell
4 = Repeat Cell
5 = Formula Cell
6 = Column headers
7 = Row numbers
8 = Cell Data Area
9 = Cell Contents Area
10 = Spreadsheet Info Area
11 = Cell In Block
12 = Cell Highlighted
13 = Cell Highlighted in Block
11
14 = Unlocked Cell
15 = Unlocked Cell in Block
16 = Unlocked Cell Highlighted
17 = Unlocked Cell Highlighted in Block
18 = Cell Error
19 = Cell Error in Block
20 = Cell Error Highlighted
21 = Cell Error Highlighted in Block
22 = Unlocked Cell Error
23 = Unlocked Cell Error in Block
24 = Unlocked Cell Error Highlighted
25 = Unlocked Cell Error Highlighted in Block
************************************************************************
CSpreadSheetWindow1 constant
************************************************************************
DECLARATION:
CSpreadSheetWindow1 =
#50#51#52#64#65#66#67#68#69#70#71#72#73#74#75#76+
#77#78#79#80#81#82#83#84#85#86#87#88;
UNIT:
GLWINDOW.PAS
DESCRIPTION:
Color palette that should be used by a TSpreadSheetWindow object when
the CSpreadSheetXXXX constants where added to the standard application
palettes (no color entries from the help system's color palettes).
REMARKS:
This is the palette used by the TSpreadSheetWindow object.
TSpreadSheetWindow palette layout:
1..8 = Blue Window palette
9 = Inputline Normal
10 = Inputline Selected
11 = Inputline Arrows
12 = Empty Cell
13 = Value Cell
14 = Text Cell
15 = Repeat Cell
16 = Formula Cell
17 = Column headers
18 = Row numbers
19 = Cell Data Area
20 = Cell Contents Area
21 = Spreadsheet Info Area
22 = Cell in Block
23 = Cell Highlighted
24 = Cell Highlighted in Block
25 = Unlocked Cell
26 = Unlocked Cell in Block
12
27 = Unlocked Cell Highlighted
28 = Unlocked Cell Highlighted in Block
29 = Cell Error
30 = Cell Error in Block
31 = Cell Error Highlighted
32 = Cell Error Highlighted in Block
33 = Unlocked Cell Error
34 = Unlocked Cell Error in Block
35 = Unlocked Cell Error Highlighted
36 = Unlocked Cell Error Highlighted in Block
(see CSpreadSheetWindow2)
************************************************************************
CSpreadSheetWindow2 constant
************************************************************************
DECLARATION:
CSpreadSheetWindow2 =
#50#51#52#72#73#74#75#76#77#78#79#80#81#82#83#84+
#85#86#87#88#89#90#91#92#93#94#95#96;
UNIT:
GLWINDOW.PAS
DESCRIPTION:
Color palette that should be used by a TSpreadSheetWindow object when
the CSpreadSheetXXXX constants where added to the standard application
palettes next to the color entries from the help system's color
palettes.
REMARKS:
A TSpreadSheetWindow should use this palette when OOGrid Library(TM)
v1.0 is used simultaneously with Turbo Vision's help system.
TSpreadSheetWindow palette layout:
1..8 = Blue Window palette
9 = Inputline Normal
10 = Inputline Selected
11 = Inputline Arrows
12 = Empty Cell
13 = Value Cell
14 = Text Cell
15 = Repeat Cell
16 = Formula Cell
17 = Column headers
18 = Row numbers
19 = Cell Data Area
20 = Cell Contents Area
21 = Spreadsheet Info Area
22 = Cell in Block
23 = Cell Highlighted
24 = Cell Highlighted in Block
13
25 = Unlocked Cell
26 = Unlocked Cell in Block
27 = Unlocked Cell Highlighted
28 = Unlocked Cell Highlighted in Block
29 = Cell Error
30 = Cell Error in Block
31 = Cell Error Highlighted
32 = Cell Error Highlighted in Block
33 = Unlocked Cell Error
34 = Unlocked Cell Error in Block
35 = Unlocked Cell Error Highlighted
36 = Unlocked Cell Error Highlighted in Block
(see CSpreadSheetWindow1)
************************************************************************
CSpreadSheetXXXX constants
************************************************************************
DECLARATION:
CSpreadSheetColor =
#$1F#$1F#$1F#$1F#$1E#$3F#$3F#$17#$1F#$7F#$7F#$7F#$2F+
#$3F#$70#$7F#$2F#$4F#$74#$7F#$2F#$BF#$F0#$FF#$AF;
CSpreadSheetBlackWhite =
#$0F#$0F#$0F#$0F#$07#$0F#$0F#$07#$0F#$7F#$7F#$7F#$0F+
#$0F#$70#$7F#$0F#$7F#$7F#$7F#$0F#$8F#$F0#$FF#$8F;
CSpreadSheetMonochrome =
#$0F#$0F#$0F#$0F#$07#$0F#$0F#$07#$0F#$70#$70#$70#$0F+
#$0F#$07#$70#$0F#$70#$0F#$80#$0F#$8F#$8F#$F0#$8F;
UNIT:
GLWINDOW.PAS
DESCRIPTION:
Color palettes that must be added to the standard application palettes
when using a TSpreadSheet object.
************************************************************************
CurrencyCharPart constant
************************************************************************
DECLARATION:
CurrencyCharPart = $FF00;
UNIT:
GLCELL.PAS
DESCRIPTION:
Bits in a cell's format value that indicate the currency character that
will be added to a number.
14
REMARKS:
(see CurrencyChar, CurrencyShift, FormatType)
************************************************************************
CurrencyPart constant
************************************************************************
DECLARATION:
CurrencyPart = $40;
UNIT:
GLCELL.PAS
DESCRIPTION:
Bits in a cell's format value that indicate if a currency character
should be added to a number.
REMARKS:
(see CurrencyCharPart, FormatType)
************************************************************************
CurrencyShift constant
************************************************************************
DECLARATION:
CurrencyShift = 8;
UNIT:
GLCELL.PAS
DESCRIPTION:
Number of places a format value should be left shifted to determine the
currency character.
REMARKS:
To determine the currency character from a format value, assign the
result of the operation Chr(FormatValue shl CurrencyShift) to a
character or string type variable.
(see CurrencyCharPart, CurrencyPart, FormatType)
************************************************************************
CurrencyStr type
************************************************************************
DECLARATION:
CurrencyStr = Str[3];
15
UNIT:
GLCELL.PAS
DESCRIPTION:
Variables of this type are used to store the currency string that a
number will be displayed with.
REMARKS:
A currency string is made up of an empty space, a currency character and
another empty space (e.g. ' $ '). If a cell's contents should be
displayed with a currency character, a currency string is returned by
the cell's FormattedString function .
(see TCell.FormattedString)
************************************************************************
DecPlacesPart constant
************************************************************************
DECLARATION:
DecPlacesPart = $0F;
UNIT:
GLCELL.PAS
DESCRIPTION:
Bits in a cell's format value that indicate the number of decimals a
number should be displayed with.
REMARKS:
(see FormatType)
************************************************************************
DefaultXXXX constants
************************************************************************
UNIT:
GLSUPPRT.PAS
DESCRIPTION:
Default values that can be used when initializing the TSpreadSheet and
TLimScrollBar objects and by TSpreadSheet's Print method.
Constant Value
------------------------------------------------ DefaultCurrencyString
' $ '
DefaultDefaultColWidth 10
DefaultDefaultDecimalPlaces 2
16
DefaultEmptyRowsAtBottom 0
DefaultEmptyRowsAtTop 0
DefaultHScrollBarLimit 27
DefaultVScrollBarLimit 104
DefaultMaxDecimalPlaces 8
DefaultMaxCols MaxInt
DefaultMaxRows MaxInt
DefaultMinColWidth 1
DefaultPrinterName 'PRN';
DefaultTopMargin '0';
DefaultBottomMargin '0';
DefaultLeftMargin '0';
DefaultRightMargin '0';
DefaultPageRows '60';
DefaultNormalCols '80';
DefaultCondensedCols '132';
DefaultPrinterCondensedOnCode #15;
DefaultPrinterCondensedOffCode #18;
DefaultPrinterUnderlineOnCode Chr(27)+Chr(45)+Chr(49);
DefaultPrinterUnderlineOffCode Chr(27)+Chr(45)+Chr(48);
DefaultPrinterBoldOnCode Chr(27)+Chr(69);
DefaultPrinterBoldOffCode Chr(27)+Chr(70);
************************************************************************
DisplayMessage function
************************************************************************
DECLARATION:
function DisplayMessage (AMessage:String): Boolean;
UNIT:
GLVIEWS.PAS
DESCRIPTION:
Displays a message in the status line.
PARAMETERS' DESCRIPTION:
AMessage : the message that will be displayed.
REMARKS:
This function creates an instance of TMessageLine and assigns a pointer
to it to the MessageLine variable. If an instance of TMessageLine
already exists, the its StatusMessage field is changed to the new
message and redisplayed.
(see TMessageLine, TMessageLine.StatusMessage, MessageLine,
EraseMessage).
17
************************************************************************
DisplayXXXX constants
************************************************************************
DECLARATION:
DisplayYes = True;
DisplayNo = False;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Used with TSpreadSheet's Recalc method to indicate if each cell that is
updated should be redisplayed or not.
************************************************************************
EditXXXX constants
************************************************************************
DECLARATION:
EditYes = True;
EditNo = False;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Used with TSpreadSheet's HandleInput method to indicate if the the data
in the cell being modified should be edited or replaced with new data.
************************************************************************
Empty variable
************************************************************************
DECLARATION:
Empty : PCell;
UNIT:
GLCELL.PAS
DESCRIPTION:
This is a special cell. It is used as the return value if a cell cannot
be found so that the TEmptyCell methods can be executed instead of
having special routines that act differently depending on whether a cell
is found ot not.
REMARKS:
This is the only instance of TEmptyCell used. It is constructed in the
initialization section.
18
************************************************************************
EraseMessage procedure
************************************************************************
DECLARATION:
procedure EraseMessage;
UNIT:
GLVIEWS.PAS
DESCRIPTION:
Erases a message that was displayed using DisplayMessage.
REMARKS:
If the MessageLine variable is not NIL, then the TMessageLine object
pointed by it is disposed and MessageLine is set to NIL.
(see DisplayMessage, MessageLine, TMessageLine)
************************************************************************
FixFormulaCol procedure
************************************************************************
DECLARATION:
procedure FixFormulaCol(CP : PCell; Operation: FormulaOps; After:
Word; Diff : Longint; MaxCols, MaxRows : Word);
UNIT:
GLCELL.PAS
DESCRIPTION:
Modify the column references of cell addresses in a formula, to reflect
a change in position.
PARAMETERS' DESCRIPTION:
CP : formula cell that contains the formula string to be
modified.
Operation : the operation that caused the cell addresses in the
formula to change.
After : a column number; only column numbers after this column
will be modified.
Diff : the value by which a column reference in a cell address
should be modified.
MaxCols : maximum number of columns in the spreadsheet.
MaxRows : maximum number of rows in the spreadsheet.
19
REMARKS:
(see FormulaOps)
************************************************************************
FixFormulaRow procedure
************************************************************************
DECLARATION:
procedure FixFormulaRow(CP : PCell; Operation: FormulaOps; After:
Word; Diff : Longint; MaxCols, MaxRows : Word);
UNIT:
GLCELL.PAS
DESCRIPTION:
Modify the row references of cell addresses in a formula, to reflect a
change in position.
PARAMETERS' DESCRIPTION:
CP : formula cell that contains the formula string to be
modified.
Operation : the operation that caused the cell addresses in the
formula to change.
After : a row number; only row numbers after this row will be
modified.
Diff : the value by which a row reference in a cell address
should be modified.
MaxCols : maximum number of columns in the spreadsheet.
MaxRows : maximum number of rows in the spreadsheet.
REMARKS:
(see FormulaOps)
************************************************************************
FormatDialog function
************************************************************************
DECLARATION:
function FormatDialog : PDialog;
UNIT:
GLTVR_US.PAS
20
DESCRIPTION:
(see CreateOOGLDialogs)
************************************************************************
FormatType type
************************************************************************
DECLARATION:
FormatType = Word;
UNIT:
GLCELL.PAS
DESCRIPTION:
Variables of this type are used to store format values.
REMARKS:
Format Bits:
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
└───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
└─────────────┬─────────────┘ │ │ └─┬─┘ └─────┬─────┘
│ │ │ │
Currency Character │ │ │ │
= $FF00 │ │ │ │
│ │ │ │
Add commas to numbers ────┘ │ │ │
= $80 │ │ │
Add a currency character ────────┘ │ │
= $40 │ │
Justification ──────────────┘ │
= $30 │
Number of decimal places ──────────────────────────┘
= $0F
************************************************************************
FormulaOps type
************************************************************************
DECLARATION:
FormulaOps = (opInsert, opDelete);
UNIT:
GLCELL.PAS
DESCRIPTION:
Used to indicate the operation that caused a cell address in a formula
to change.
21
REMARKS:
If a column or a row was inserted then the column or row values in
affected cell addresses must be increased to reflect the change; if a
column or a row was deleted then the column or row values in affected
cell addresses must be decreased to reflect the change.
(see FixFormulaCol, FixFormulaRow)
************************************************************************
FormulaStart function
************************************************************************
DECLARATION:
function FormulaStart(Inp : String; Start, MaxCols, MaxRows :
Word; var P : CellPos; var FormLen : Word) : Boolean;
UNIT:
GLCELL.PAS
DESCRIPTION:
Checks to see if a place in a string is the beggining of a formula.
PARAMETERS' DESCRIPTION:
Inp : the string to be checked.
Start : the place in the string that will be checked.
MaxCols : the maximum number of columns in the spreadsheet.
MaxRows : the maximum number of rows in the spreadsheet.
P : if the given place in the string is the beggining of a
formula, the cell address that begins the formula will be
returned in this parameter.
FormLen : the length of the beggining of the formula (the length of the
cell address) will be returned in this parameter.
REMARKS:
The function will return TRUE if the place in the string was the
beggining of a formula; FALSE otherwise.
************************************************************************
GetColWidth function
************************************************************************
DECLARATION:
function GetColWidth(var WHash : TWidthHashTable; C : Word) :
Byte;
22
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Searches for a column's width in a width hash table.
PARAMETERS' DESCRIPTION:
WHash : the TWidthHashTable object that will be used to determine the
column's width
C : the column's number; the width of this column will be the
width returned by the function.
************************************************************************
GetColWidthFunc type
************************************************************************
DECLARATION:
GetColWidthFunc = function(var WHash: TWidthHashTable;
C: Word): Byte;
UNIT:
GLCELL.PAS
DESCRIPTION:
(see GetColWidth)
************************************************************************
GetWidthDialog function
************************************************************************
DECLARATION:
function GetWidthDialog : PDialog;
UNIT:
GLTVR_US.PAS
DESCRIPTION:
(see CreateOOGLDialogs)
************************************************************************
GLResFile variable
************************************************************************
DECLARATION:
GLResFile : PResourceFile;
UNIT:
GLSUPPRT.PAS
23
DESCRIPTION:
Pointer to the resource file to be used by the TSpreadSheet object.
REMARKS:
This variable must be initialized before creating the first instance of
TSpreadSheet; failure to do so, may cause the system to crash. Also,
allways remember to close the resource file associated to this variable.
************************************************************************
GLSortExit procedure
************************************************************************
DECLARATION:
procedure GLSortExit;
UNIT:
GLSORT.PAS
DESCRIPTION:
Exit procedure of the GLSORT unit. It disposes the TSortObject created
in the initalization section.
************************************************************************
GLStringList variable
************************************************************************
DECLARATION:
GLStringList : PStringList;
UNIT:
GLSUPPRT.PAS
DESCRIPTION:
Pointer to the string list used by the TSpreadSheet object.
REMARKS:
This variable must be initialized before creating the first instance of
TSpreadSheet; failure to do so, may cause the system to crash. Also,
allways remember to dispose the TStringList object associated to this
variable.
************************************************************************
GoToDialog function
************************************************************************
DECLARATION:
function GoToDialog : PDialog;
24
UNIT:
GLTVR_US.PAS
DESCRIPTION:
(see CreateOOGLDialogs)
************************************************************************
hcXXXX constants
************************************************************************
UNIT:
GLEQUATES.PAS
DESCRIPTION:
The following is a description of all help contexts in OOGrid
Library(TM) v1.0. The values of this constants depend on the values
assigned to the InitStandardContextNumber and InitHelpContextNumber
constants.
Constant Description
-----------------------------------------------------------------
hcYes 'Yes' button in a dialog
hcNo 'No' button in a dialog
hcOk 'OK' button in a dialog
hcCancel 'Cancel' button in a dialog
hcBottomMargin Input line in the 'Print' dialog for the bottom
margin
hcChangeHeaderInput Input line in the 'Change header' dialog for
the header
hcCondensedCols Input line in the 'Print' dialog for the number
of condensed columns (in a page)
hcCurrencyChar Input line in the 'Format cells' dialog for the
currency character
hcDecimalPlaces Input line in the 'Format cells' dialog for the
number of decimal places of a number
hcFirstKey Input line in the 'Sort' dialog for the first
sort key
hcGetWidthInput Input line in the 'Change width' dialog for a
column's new width
hcGoToCellInput Input line in the 'Go to' dialog for the
destination cell
hcInputLine Input line where spreadsheet data is entered
hcLeftMargin Input line in the 'Print' dialog for the left
margin
hcNormalCols Input line in the 'Print' dialog for the number
of normal columns (in a page)
hcPageRows Input line in the 'Print' dialog for the number
of rows (in a page)
hcPleaseWait Dialogs that indicate the user to wait
hcRightMargin Input line in the 'Print' dialog for the right
margin
hcSecondKey Input line in the 'Sort' dialog for the second
sort key
hcThirdKey Input line in the 'Sort' dialog for the third
25
sort key
hcTopMargin Input line in the 'Print' dialog for the top
margin
Cluster:
hcCopyColLiteral Checkbox in the 'Paste' dialog to copy columns
literally
hcCopyRowLiteral Checkbox in the 'Paste' dialog to copy rows
literally
Cluster:
hcCurrencyFormat Checkbox in the 'Format cells' dialog to
display numbers with a currency character
hcPutCommasInNumbers Checkbox in the 'Format cells' dialog to
display numbers with commas
Cluster:
hcJustLeft Radio button in the 'Format cells' dialog to
left justify a cell
hcJustCenter Radio button in the 'Format cells' dialog to
center justify a cell
hcJustRight Radion button in the 'Format cells' dialog to
right justify a cell
Cluster:
hcPrintToPrinter Radio button in the 'Print' dialog to print a
spreadsheet to the printer
hcPrintToFile Radion button in the 'Print' dialog to print a
spreadsheet to a file
Cluster:
hcPrintNormal Radio button in the 'Print' dialog to print a
spreadsheet in normal characters
hcPrintCondensed Radio button in the 'Print' dialog to print a
spreadsheet in condensed character
Cluster:
hcPrintRowsNo Radio button in the 'Print' dialog to not print
row numbers
hcPrintRowsLeft Radio button in the 'Print' dialog to print row
numbers (only in left pages)
hcPrintRowsAlways Radio button in the 'Print' dialog to always
print row numbers
Cluster:
hcPrintColsNo Radio button in the 'Print' dialog to not print
column headers
hcPrintColsTop Radio button in the 'Print' dialog to print
column headers(only in upper pages)
hcPrintColsAlways Radio button in the 'Print' dialog to print
column headers always
Cluster:
hcLineOutline Checkbox in the 'Print' dialog to print row
outlines
hcBoldBorders Checkbox in the 'Print' dialog to print row
numbers and column headers in bold characters
Cluster:
26
hcAscending Radio button in the 'Sort' dialog to sort a
list in ascending order
hcDescending Radio button in the 'Sort' dialog to sort a
list in descending order
************************************************************************
InitClipboard procedure
************************************************************************
DECLARATION:
procedure InitClipboard;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Resets the clipboard fields.
************************************************************************
InitCommandNumber constant
************************************************************************
DECLARATION:
InitCommandNumber = 200;
UNIT:
GLEQUATES.PAS
DESCRIPTION:
The starting number of the sequence of values that will be assigned to
the list of command values used by the dialogs in OOGrid Library(TM)
v1.0 and by the TSpreadSheet object.
REMARKS:
(see the description of GLEQUATES.PAS)
************************************************************************
InitHelpContextNumber constant
************************************************************************
DECLARATION:
InitHelpContextNumber = 100;
UNIT:
GLEQUATES.PAS
DESCRIPTION:
The starting number of the sequence of values that will be assigned to
the list of help contexts used by all the dialogs and views in OOGrid
Library(TM) v.1.0.
27
REMARKS:
(see the description of GLEQUATES.PAS)
************************************************************************
InitObjectTypeID constant
************************************************************************
DECLARATION:
InitObjectTypeID = 20000;
UNIT:
GLEQUATES.PAS
DESCRIPTION:
The starting number of the sequence of values that will be assigned to
the list of type ID's of the objects that will be registered for stream
access.
REMARKS:
(see the description of GLEQUATES.PAS)
************************************************************************
InitStandardContextNumber constant
************************************************************************
DECLARATION:
InitStandardContextNumber = 2;
UNIT:
GLEQUATES.PAS
DESCRIPTION:
The starting number of the sequence of values that will be assigned to
the list of standard help contexts (hcYes, hcNo, hcOk and hcCancel) used
by the dialogs in OOGrid Library(TM) v1.0.
REMARKS:
(see the description of GLEQUATES.PAS)
************************************************************************
InputLine function
************************************************************************
DECLARATION:
function InputLine : PSheetInputLine;
28
UNIT:
GLTVR_US.PAS
DESCRIPTION:
Creates a TSheetInputLine object and returns a pointer to it
REMARKS:
The TSheetInputLine object is added to the resource file to avoid
referring to a help context value in the TSpreadSheet object. All help
context values are then used only by the GLTVR_US unit.
************************************************************************
Justification type
************************************************************************
DECLARATION:
Justification = (JLeft, JCenter, JRight);
UNIT:
GLCELL.PAS
DESCRIPTION:
Enumerates all the different ways the contents of a cell can be
justified.
REMARKS:
(see JustPart)
************************************************************************
JustPart constant
************************************************************************
DECLARATION:
JustPart = $03;
UNIT:
GLCELL.PAS
DESCRIPTION:
Bits in a cell's format (after being left shifted JustShift spaces) that
indicate the justification (left, center or right) of a cell's contents.
REMARKS:
Possible results of the operation '(FormatValue shl JustShift) and
JustPart' and their meanings:
0 : left justification
29
1 : center justification
2 : right justification
(see JustShift, FormatType)
************************************************************************
Keyposition type
************************************************************************
DECLARATION:
KeyPosition = (BeforePivot, SameAsPivot, AfterPivot);
UNIT:
GLSORT.PAS
DESCRIPTION:
Enumerates the different results of a comparision.
REMARKS:
The results in the KeyPosition enumerated type indicate the position of
the key being compared with the pivot (or reference) used by the
QuickSort algorithm when sorting a list.
(see TSortObject.CurrRowPosition, TSortObject.CurrKeyPosition)
************************************************************************
KeyValue type
************************************************************************
DECLARATION:
KeyValue = record
Error : Boolean;
case CellType : CellTypes of
ClText,
ClRepeat : (StrValue: String);
ClValue,
ClFormula : (Value: Extended);
end; {...KeyValue }
UNIT:
GLSORT.PAS
DESCRIPTION:
This record is used to store information about the cells being compared.
The result of comparing two cells depends of the error status, the
cells' type and the cells' contents.
REMARKS:
(see TSortObject.FillKeyRec)
30
************************************************************************
MessageLine variable
************************************************************************
DECLARATION:
MessageLine : PMessageLine
UNIT:
GLVIEWS.PAS
DESCRIPTION:
Global variable used to create an instance of a TMessageLine object.
REMARKS:
The DisplayMessage function and the EraseMessage procedure use this
variable to determine if an instance of TMessageLine already exists and
where to find it.
(see DisplayMessage, EraseMessage)
************************************************************************
ModifiedXXXX constants
************************************************************************
DECLARATION:
ModifiedYes = True;
ModifiedNo = False;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Used with TSpreadSheet's SetChanged method to indicate if the
spreadsheet has been modified or not.
************************************************************************
NumberFormatShift constant
************************************************************************
DECLARATION:
NumberFormatShift = 6;
UNIT:
GLCELL.PAS
DESCRIPTION:
Number of spaces a format value should be left shifted to determine the
format for numbers.
31
REMARKS:
After left shifting a format value by NumberFormatShift spaces, the
first two bits of the resulting value indicate how numbers should be
formatted.
Bit 1 = 1: Add commas to numbers
Bit 2 = 1: Add a currency character to numbers
(see CommasPart, CurrencyPart, FormatType)
************************************************************************
OOGridFileHeader constant
************************************************************************
DECLARATION:
OOGridFileHeader = 'OOGridLv1.00';
UNIT:
GLTSHEET.PAS
DESCRIPTION:
All TSpreadSheet objects stored in a stream will be identified by this
file header.
************************************************************************
PasteDialog function
************************************************************************
DECLARATION:
function PasteDialog : PDialog;
UNIT:
GLTVR_US.PAS
DESCRIPTION:
(see CreateOOGLDialogs)
************************************************************************
PrintDialog function
************************************************************************
DECLARATION:
function PrintDialog : PDialog;
UNIT:
GLTVR_US.PAS
DESCRIPTION:
(see CreateOOGLDialogs)
32
************************************************************************
PrinterConfigRec variable
************************************************************************
DECLARATION:
PrinterConfigRec : record
PrinterCondensedOnCode : String;
PrinterCondensedOffCode : String;
PrinterUnderlineOnCode : String;
PrinterUnderlineOffCode : String;
PrinterBoldOnCode : String;
PrinterBoldOffCode : String;
end; {...PrinterConfigRec }
UNIT:
GLSUPPRT.PAS
DESCRIPTION:
Stores printer codes used when printing a spreadsheet.
REMARKS:
This record is always initialized with the default values.
************************************************************************
PrintingDialog function
************************************************************************
DECLARATION:
function PrintingDialog : PDialog;
UNIT:
GLTVR_US.PAS
DESCRIPTION:
(see CreateOOGLDialogs)
************************************************************************
PrintToDialog function
************************************************************************
DECLARATION:
function PrintToDialog : PDialog;
UNIT:
GLTVR_US.PAS
DESCRIPTION:
(see CreateOOGLDialogs)
33
************************************************************************
RBlock constant
************************************************************************
DECLARATION:
RBlock : TStreamRec = (
ObjType : stRBlock;
VmtLink : Ofs(TypeOf(TBlock)^);
Load : @TBlock.Load;
Store : @TBlock.Store
);
UNIT:
GLSUPPRT.PAS
DESCRIPTION:
Registration record used to register the TBlock object for stream
access.
REMARKS:
(see stRXXXX, RegisterGLSupprt)
************************************************************************
RChangeHeader variable
************************************************************************
DECLARATION:
RChangeHeader : record
NewHeader : String[80]; {Inputline}
end; {...RChangeHeader }
UNIT:
GLVIEWS.PAS
DESCRIPTION:
Global record-type variable used with the GetData and SetData methods of
the 'Change Header' dialog.
************************************************************************
RChangeWidth variable
************************************************************************
DECLARATION:
RChangeWidth : record
NewWidth : String[10]; {Inputline}
end; {...RChangeWidth }
UNIT:
GLVIEWS.PAS
34
DESCRIPTION:
Global record-type variable used with the GetData and SetData methods of
the 'Change width' dialog.
************************************************************************
RCopyFormulas variable
************************************************************************
DECLARATION:
RCopyFormulas : record
CopyFormulas : Word; {Checkboxes}
end; {...RCopyFormulas }
UNIT:
GLVIEWS.PAS
DESCRIPTION:
Global record-type variable used with the GetData and SetData methods of
the 'Paste' dialog.
************************************************************************
RedrawXXXX constants
************************************************************************
DECLARATION:
RedrawYes = True;
RedrawNo = False;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Used with TSpreadSheet's ExtendCurrBlock method to indicate if the new
block should be redrawn or not.
************************************************************************
RegisterGLCell procedure
************************************************************************
DECLARATION:
procedure RegisterGLCell;
UNIT:
GLCELL.PAS
DESCRIPTION:
Register GLCELL.PAS's objects for stream access.
REMARKS:
It registers the TValueCell, TTextCell, TFormulaCell and TRepeatCell
35
objects.
************************************************************************
RegisterGLSupprt procedure
************************************************************************
DECLARATION:
procedure RegisterGLSupprt;
UNIT:
GLSUPPRT.PAS
DESCRIPTION:
Register the unit's objects for stream access.
REMARKS:
It registers the TBlock object.
************************************************************************
RegisterGLTSheetInputLine procedure
************************************************************************
DECLARATION:
procedure RegisterGLTSheetInputLine;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Registers all the objects in the GLTSHEET unit for stream access.
************************************************************************
RegisterGLViews procedure
************************************************************************
DECLARATION:
procedure RegisterGLViews;
UNIT:
GLVIEWS.PAS
DESCRIPTION:
Registers the unit's objects for stream access.
REMARKS:
It registers the TLimScrollBar and TSheetInputLine objects.
36
************************************************************************
RegisterSpreadSheet procedure
************************************************************************
DECLARATION:
procedure RegisterSpreadSheet;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Registers all the objects in OOGrid Library(TM) v1.0 for stream access.
************************************************************************
RemoveXXXX constants
************************************************************************
DECLARATION:
RemoveBlock = True;
RemoveSingleCell = False;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Used with TSpreadSheet's EraseCellBlock method to indicate if a block of
cells or only the highlighted cell is being erased.
************************************************************************
RepeatFirstChar constant
************************************************************************
DECLARATION:
RepeatFirstChar = '\';
UNIT:
GLCELL.PAS
DESCRIPTION:
Character used to determine when the information entered by the user is
a repeat character.
REMARKS:
This character is never displayed in the spreadsheet; it is only
displayed when editing the contents of a repeat cell.
(see TRepeatCell)
37
************************************************************************
RepeatTextChar constant
************************************************************************
DECLARATION:
RepeatTextChar = ' ';
UNIT:
GLCELL.PAS
DESCRIPTION:
Character used to determine when the information entered by the user is
a string.
REMARKS:
This character is never displayed in the spreadsheet; it is only
displayed when editing the contents of a text cell.
(see TTextCell)
************************************************************************
RFormat variable
************************************************************************
DECLARATION:
RFormat : record
Justification : Word; {RadioButtons}
DecimalPlaces : String[1]; {Inputline}
CurrencyChar : String[1]; {Inputline}
NumberFormat : Word; {Checkboxes}
end; {...RFormat }
UNIT:
GLVIEWS.PAS
DESCRIPTION:
Global record-type variable used with the GetData and SetData methods of
the 'Format cell' dialog.
************************************************************************
RFormulaCell constant
************************************************************************
DECLARATION:
RFormulaCell: TStreamRec = (
ObjType: stRFormulaCell;
VmtLink: Ofs(TypeOf(TFormulaCell)^);
Load: @TFormulaCell.Load;
Store: @TFormulaCell.Store
);
38
UNIT:
GLCELL.PAS
DESCRIPTION:
Registration record used to register the TFormulaCell object for stream
access.
REMARKS:
(see stRXXXX, RegisterGLCell)
************************************************************************
RGoToCell variable
************************************************************************
DECLARATION:
RGoToCell : record
NewCell : String[10]; {Inputline}
end; {...RGoToCell }
UNIT:
GLVIEWS.PAS
DESCRIPTION:
Global record-type variable used with the GetData and SetData methods of
the 'Go To' dialog.
************************************************************************
RLimScrollBar constant
************************************************************************
DECLARATION:
RLimScrollBar : TStreamRec = (
ObjType : stRLimScrollBar;
VmtLink : Ofs(TypeOf(TLimScrollBar)^);
Load : @TLimScrollBar.Load;
Store : @TLimScrollBar.Store
);
UNIT:
GLVIEWS.PAS
DESCRIPTION:
Registration record used to register the TLimScrollBar object for stream
access.
REMARKS:
(see stRXXXX, RegisterGLViews)
39
************************************************************************
RPrint variable
************************************************************************
DECLARATION:
RPrint : record
PrintTo : Word; {RadioButtons}
PrintSize : Word; {RadioButtons}
PrintRows : Word; {RadioButtons}
PrintColumns : Word; {RadioButtons}
TopMargin : String[3]; {Inputline}
BottomMargin : String[3]; {Inputline}
LeftMargin : String[3]; {Inputline}
RightMargin : String[3]; {Inputline}
Other : Word; {Checkboxes}
PageRows : String[3]; {Inputline}
NormalCols : String[3]; {Inputline}
CondensedCols : String[3]; {Inputline}
end; {...RPrint }
UNIT:
GLVIEWS.PAS
DESCRIPTION:
Global record-type variable used with the GetData and SetData methods of
the 'Print' dialog.
************************************************************************
RRepeatCell constant
************************************************************************
DECLARATION:
RRepeatCell: TStreamRec = (
ObjType: stRRepeatCell;
VmtLink: Ofs(TypeOf(TRepeatCell)^);
Load: @TRepeatCell.Load;
Store: @TRepeatCell.Store
);
UNIT:
GLCELL.PAS
DESCRIPTION:
Registration record used to register the TRepeatCell object for stream
access.
REMARKS:
(see stRXXXX, RegisterGLCell)
40
************************************************************************
RSheetInputLine constant
************************************************************************
DECLARATION:
RSheetInputLine : TStreamRec = (
ObjType : stRSheetInputLine;
VmtLink : Ofs(TypeOf(TSheetInputLine)^);
Load : @TSheetInputLine.Load;
Store : @TSheetInputLine.Store
);
UNIT:
GLVIEWS.PAS
DESCRIPTION:
Registration record used to register the TSheetInputLine object for
stream access.
REMARKS:
(see stRXXXX, RegisterGLViews)
************************************************************************
RSortInfo variable
************************************************************************
DECLARATION:
RSortInfo : record
FirstKey : String[80]; {Inputline}
FirstKeyOrder : Word; {RadioButtons}
SecondKey : String[80]; {Inputline}
SecondKeyOrder : Word; {RadioButtons}
ThirdKey : String[80]; {Inputline}
ThirdKeyOrder : Word; {RadioButtons}
end; {...RSortInfo }
UNIT:
GLVIEWS.PAS
DESCRIPTION:
Global record-type variable used with the GetData and SetData methods of
the 'Sort' dialog.
************************************************************************
RSpreadSheet constant
************************************************************************
DECLARATION:
RSpreadSheet : TStreamRec = (
ObjType : stRSpreadSheet;
VmtLink : Ofs(TypeOf(TSpreadSheet)^);
Load : @TSpreadSheet.Load;
41
Store : @TSpreadSheet.Store
);
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Registration record used to register the TSpreadSheet object for stream
access.
REMARKS:
(see stRXXXX)
************************************************************************
RTextCell constant
************************************************************************
DECLARATION:
RTextCell: TStreamRec = (
ObjType: stRTextCell;
VmtLink: Ofs(TypeOf(TTextCell)^);
Load: @TTextCell.Load;
Store: @TTextCell.Store
);
UNIT:
GLCELL.PAS
DESCRIPTION:
Registration record used to register the TTextCell object for stream
access.
REMARKS:
(see stRXXXX, RegisterGLCell)
************************************************************************
RValueCell constant
************************************************************************
DECLARATION:
RValueCell: TStreamRec = (
ObjType: stRValueCell;
VmtLink: Ofs(TypeOf(TValueCell)^);
Load: @TValueCell.Load;
Store: @TValueCell.Store
);
UNIT:
GLCELL.PAS
42
DESCRIPTION:
Registration record used to register the TValueCell object for stream
access.
REMARKS:
(see stRXXXX, RegisterGLCell)
************************************************************************
ScreenColRange type
************************************************************************
DECLARATION:
ScreenColRange = 0..ScreenCols;
UNIT:
GLSUPPRT.PAS
DESCRIPTION:
Variables of this type are used to store the position of a column in the
screen.
REMARKS:
Values that represent positions outside of the valid display area can be
easily detected with Range Checking.
************************************************************************
ScreenCols constant
************************************************************************
DECLARATION:
ScreenCols = 77;
UNIT:
GLSUPPRT.PAS
DESCRIPTION:
Max number of columns that can be used to display the spreadsheet.
REMARKS:
All the 80 columns of the screen cannot be used since the spreadsheet is
displayed within a window.
43
************************************************************************
ScreenPos type
************************************************************************
DECLARATION:
ScreenPos = record
Col : ScreenColRange;
Row : ScreenRowRange;
end; {...ScreenPos }
UNIT:
GLSUPPRT.PAS
DESCRIPTION:
Stores the position of a point in the screen.
************************************************************************
ScreenRowRange type
************************************************************************
DECLARATION:
ScreenRowRange = 0..ScreenRows;
UNIT:
GLSUPPRT.PAS
DESCRIPTION:
Variables of this type are used to store the position of a row in the
screen.
REMARKS:
Values that represent positions outside of the valid display area can be
easily detected with Range Checking.
************************************************************************
ScreenRows constant
************************************************************************
DECLARATION:
ScreenRows = 46;
UNIT:
GLSUPPRT.PAS
DESCRIPTION:
Max numbers of rows that can be used to display the spreadsheet (in any
screen mode)
44
REMARKS:
All the 50 columns of a 43/50 lines display cannot be used since the
spreadsheet is displayed within a window.
************************************************************************
SortDialog function
************************************************************************
DECLARATION:
function SortDialog : PDialog;
UNIT:
GLTVR_US.PAS
DESCRIPTION:
(see CreateOOGLDialogs)
************************************************************************
SortingDialog function
************************************************************************
DECLARATION:
function SortingDialog : PDialog;
UNIT:
GLTVR_US.PAS
DESCRIPTION:
(see CreateOOGLDialogs)
************************************************************************
SortTypes type
************************************************************************
DECLARATION:
SortTypes = (Ascending, Descending);
UNIT:
GLSORT.PAS
DESCRIPTION:
Enumerates the two types of orders that you can use to sort a list using
the sort function.
************************************************************************
StandardSortObject variable
************************************************************************
DECLARATION:
StandardSortObject : PSortObject;
45
UNIT:
GLSORT.PAS
DESCRIPTION:
This variable points to the sort object used in OOGrid Library(TM) v1.0.
REMARKS:
(see TSpreadSheet.SortObject)
************************************************************************
stRXXXX constants
************************************************************************
UNIT:
GLEQUATES.PAS
DESCRIPTION:
The following is a description of all object type ID constants (used in
the respective stream registration record) in Grid Library(TM) v1.0.
The values of this constants depend on the value assigned to the
InitObjectTypeID constant.
Constant Description
-----------------------------------------------------------------
stRValueCell ID of the TValueCell object
stRTextCell ID of the TTextCell object
stRFormulaCell ID of the TFormulaCell object
stRRepeatCell ID of the TRepeatCelleCell object
stRBlock ID of the TBlock object
stRLimScrollBar ID of the TLimScrollBar object
stRSheetInputLine ID of the TSheetInputLine object
stRSpreadSheet ID of the TSpreadSheet object
************************************************************************
stXXXX constants
************************************************************************
UNIT:
GLSUPPRT.PAS
DESCRIPTION:
Additional stream status constants returned by TSpreadSheet when using
streams.
Constant Value Description
-----------------------------------------------------------------
stNoMemoryError -7 Returned when an object could not be
created because of low memory, and the
stream access operation was not completed
for that reason
46
stInvalidFormatError -8 Returned when the file header (see
OOGridFileHeader) was not found in a file
************************************************************************
sXXXX constants
************************************************************************
UNIT:
GLSUPPRT.PAS
DESCRIPTION:
Key constants of all the strings in the TStringList object used by
TSpreadSheet (see GLStringList).
Constant Value Description
-----------------------------------------------------------------
sAutoCalcLetter 1 Displayed in the info area when AutoCalc
mode is on
sBlockDeleteMsg 2 Displayed when deleting a block of cells
sBlockName 3 Name of a block
sCancelPrintJob 4 Used to prompt the user whether or not to
cancel a print job
sCellError 5 String displayed in a cell when there is a
numeric error
sCellLockedInfo 6 String displayed in the contents line
(above the input line) when a cell is
protected
sCellsProtectedMsg 7 Indicate the user that the selected cells
are protected
sCellUnlockedInfo 8 String displayed in the contents line
(above the input line)when a cell is
unlocked
sColumnEntryIndicator 9 Prefix added to column letters in the sort
and change header dialogs
sCopyCellsMsg 10 Displayed when copying a block of cells
sDisplayFormulasLetter 11 Displayed in the info area when
DisplayFormulas mode is on
sDisplayHeadersLetter 12 Displayed in the info area when
DisplayHeaders mode is on
sEmptyCellName 13 Name of an empty cell
sEndKeyPressedLetter 14 Displayed in the info area when the END
key was pressed
sFilePrintErrorMsg 15 Displayed when there was an error printing
a spreadsheet to a file
sFormatErrorMsg 16 Indicates the user there is an error in
the format specified
sFormatError1Msg 17 Number of decimals out of place
sFormatError2Msg 18 Currency character not valid
sFormulaCellName 19 Name of a formula cell
sInvalidCellMsg 20 Cell address is not valid
sInvalidWidthMsg 21 Specified column width not within range
sMoveCellsMsg 22 Displayed when moving a block of cells
sParseError1 23 Parse stack overflow
sParseError2 24 Bad cell range
sParseError3 25 Expected expression
sParseError4 26 Expected operation
47
sParseError5 27 Expected opening parenthesis
sParseError6 28 Expected cell
sParseError7 29 Expected operator or closing parenthesis
sPrinterPrintErrorMsg 30 Indicates the user there was an error when
printing to the printer
sPrintInitErrorMsg 31 Indicates the user there was an error when
initializating the printer or file
sPrintToWildCard 32 wildcard used to list the files that can
be used when printing to a file
sRecalcMsg 33 Displayed when recalculating the values of
all the cells in the spreadsheet
sRepeatCellName 34 Name of a repeat cell
sTempFileName 35 Name of the file that will be used for
temporary storage
sTextCellName 36 Name of a text cell
sValueCellName 37 Name of a value cell
sWidthLetter 38 Displayed in the contents area, next to
the current column's width
************************************************************************
TBlock object
************************************************************************
DECLARATION:
TBlock = object(TObject)
AnchorColShifted,
AnchorRowShifted : Boolean;
Anchor,
Start,
Stop : CellPos;
constructor Init(InitStart : CellPos);
function CellInBlock(CheckCell : CellPos) : Boolean;
function ExtendTo(NewLoc : CellPos) : Boolean; virtual;
constructor Load(var S: TStream);
procedure Store(var S: TStream);
end; {...TBlock }
UNIT:
GLSUPPRT.PAS
DESCRIPTION:
Stores the starting and ending position of a block of cells. It can
extend the block of cells in any direction.
************************************************************************
TBlock.Anchor field
************************************************************************
DECLARATION:
Anchor : CellPos;
UNIT:
GLSUPPRT.PAS
48
DESCRIPTION:
It is a position in the block that will never move when resizing the
block.
REMARKS:
The anchor of a block is the cell position where the block was created.
It can be either the upper left corner or the lower right corner of the
block.
************************************************************************
TBlock.AnchorColShifted field
************************************************************************
DECLARATION:
AnchorColShifted : Boolean;
UNIT:
GLSUPPRT.PAS
DESCRIPTION:
Indicates the position of the anchor (see TBlock.Anchor) relative to the
position of the stop column. If FALSE, it means the stop column of the
block is located after the column of the anchor (the normal position);
if TRUE, it means the stop column of the block is located before the
column of the anchor (the shifted position).
REMARKS:
You will never need to access this field directly.
************************************************************************
TBlock.AnchorRowShifted field
************************************************************************
DECLARATION:
AnchorRowShifted : Boolean;
UNIT:
GLSUPPRT.PAS
DESCRIPTION:
Indicates the position of the anchor (see TBlock.Anchor) relative to the
position of the stop row. If FALSE, it means the stop row of the block
is located after the row of the anchor (the normal position); if TRUE,
it means the stop row of the block is located before the column of the
anchor (the shifted position).
49
************************************************************************
TBlock.CellInBlock function
************************************************************************
DECLARATION:
function CellInBlock(CheckCell : CellPos) : Boolean;
UNIT:
GLSUPPRT.PAS
DESCRIPTION:
Checks if a given cell is inside the block.
PARAMETERS' DESCRIPTION:
CheckCell : the position of the cell that is being checked
************************************************************************
TBlock.ExtendTo funcition
************************************************************************
DECLARATION:
function ExtendTo(NewLoc : CellPos) : Boolean; virtual;
UNIT:
GLSUPPRT.PAS
DESCRIPTION:
Extends the block to the given position.
PARAMETERS' DESCRIPTION:
NewLoc : the position where the block will be extended to; it can be
any position in the spreadsheet
************************************************************************
TBlock.Init CONSTRUCTOR
************************************************************************
DECLARATION:
constructor Init(InitStart : CellPos);
UNIT:
GLSUPPRT.PAS
DESCRIPTION:
Creates and initializes the TBlock object.
PARAMETERS' DESCRIPTION:
InitStart : the position where the block will be created.
50
REMARKS:
The Start and Stop field will be set to the cell position passed in the
InitStart parameter.
************************************************************************
TBlock.Load CONSTRUCTOR
************************************************************************
DECLARATION:
constructor Load(var S: TStream);
UNIT:
GLSUPPRT.PAS
DESCRIPTION:
Loads a block from disk.
PARAMETERS' DESCRIPTION:
S : the stream from which the block will be loaded.
************************************************************************
TBlock.Start field
************************************************************************
DECLARATION:
Start : CellPos;
UNIT:
GLSUPPRT.PAS
DESCRIPTION:
The upper left corner of the block.
************************************************************************
TBlock.Stop field
************************************************************************
DECLARATION:
Stop : CellPos;
UNIT:
GLSUPPRT.PAS
DESCRIPTION:
The lower right corner of the block.
51
************************************************************************
TBlock.Store procedure
************************************************************************
DECLARATION:
procedure Store(var S: TStream);
UNIT:
GLSUPPRT.PAS
DESCRIPTION:
Writes a block to disk.
PARAMETERS' DESCRIPTION:
S : the stream to which the block will be written.
************************************************************************
TCell object
************************************************************************
DECLARATION:
TCell = OBJECT(TObject)
Loc : CellPos;
constructor Init(InitLoc : CellPos);
destructor Done; virtual;
function CellType : CellTypes; virtual;
function LegalValue : Boolean; virtual;
function Name : String; virtual;
function Format(var FHash : TFormatHashTable;
FormulasDisplayed : Boolean) : FormatType; virtual;
function Width(var FHash : TFormatHashTable;
FormulasDisplayed : Boolean) : Word; virtual;
function Overwritten(var CHash : TCellHashTable;
var FHash : TFormatHashTable; var WHash : TWidthHashTable;
var LastPos : CellPos; MaxCols : Word;
GetColWidth : GetColWidthFunc;
FormulasDisplayed : Boolean) : Word; virtual;
function ShouldUpdate : Boolean; virtual;
function HasError : Boolean; virtual;
function CurrValue : Extended; virtual;
function OverwriteStart(var FHash : TFormatHashTable;
var WHash : TWidthHashTable; GetColWidth : GetColWidthFunc;
EndCol : Word; DisplayFormulas : Boolean) : Word; virtual;
procedure EditString(MaxDecPlaces : Byte; var Input : String);
virtual;
function DisplayString(FormulasDisplayed : Boolean;
MaxDecPlaces : Byte) : String; virtual;
function FormattedString(var OHash : TOverwriteHashTable;
var FHash : TFormatHashTable; var WHash : TWidthHashTable;
GetColWidth : GetColWidthFunc; CPos : CellPos;
FormulasDisplayed : Boolean; Start : Word; ColWidth : Byte;
var CurrencyString : CurrencyStr; var ClType: CellTypes):
String; virtual;
function CopyString : String; virtual;
end; {...TCell }
52
UNIT:
GLCELL.PAS
DESCRIPTION:
This the main cell object. You will never construct an instance of
TCell itself; rather you will use one or more of TCell's derived object
types: TEmptyCell, TTextCell, TValueCell, TFormulaCell, TRepeatCell or
create new derived object types.
REMARKS:
Most of TCell's methods are abstract methods.
************************************************************************
TCell.CellType function
************************************************************************
DECLARATION:
function CellType : CellTypes; virtual;
UNIT:
GLCELL.PAS
DESCRIPTION:
Returns the type of the cell. ABSTRACT METHOD.
REMARKS:
This function is used to determine what type of cell you are working
with. Each derived object type must override this method to return the
aproppiate cell type when this function is called.
(see CellTypes)
************************************************************************
TCell.CopyString function
************************************************************************
DECLARATION:
function CopyString : String; virtual;
UNIT:
GLCELL.PAS
DESCRIPTION:
Returns a cell's string information.
REMARKS:
Every derived object type must override this method to return any string
53
information the cell stores.
(see TCell.CurrValue)
************************************************************************
TCell.CurrValue function
************************************************************************
DECLARATION:
function CurrValue : Extended; virtual;
UNIT:
GLCELL.PAS
DESCRIPTION:
Returns the current numeric value of a cell. ABSTRACT METHOD.
REMARKS:
Every derived object type must override this method to return the
correct current value of the cell when this function is called.
(see TCell.CopyString)
************************************************************************
TCell.DisplayString function
************************************************************************
DECLARATION:
function DisplayString(FormulasDisplayed : Boolean;
MaxDecPlaces : Byte) : String; virtual;
UNIT:
GLCELL.PAS
DESCRIPTION:
Returns the string that will be displayed just above the input line.
ABSTRACT METHOD.
PARAMETERS' DESCRIPTION:
FormulasDisplayed : indicates if formulas (not their result) are being
displayed.
MaxDecPlaces : maximum number of decimal places that a number can
be displayed with.
REMARKS:
Every derived object type must override this method to create and return
the string will the cell's contents, that will be displayed just above
the input line.
54
************************************************************************
TCell.Done DESTRUCTOR
************************************************************************
DECLARATION:
destructor Done; virtual;
UNIT:
GLCELL.PAS
DESCRIPTION:
Performs the necessary cleanup and disposal of the cell object.
************************************************************************
TCell.EditString procedure
************************************************************************
DECLARATION:
procedure EditString(MaxDecPlaces : Byte; var Input :
String); virtual;
UNIT:
GLCELL.PAS
DESCRIPTION:
Returns a string with the cell's contents. ABSTRACT METHOD.
PARAMETERS' DESCRIPTION:
MaxDecPlaces : maximum number of decimal places that numbers can be
displayed with.
Input : parameter that will contain the string returned by this
procedure.
REMARKS:
Every derived object type must override this method to create and return
a string with the cell's contents.
************************************************************************
TCell.Format function
************************************************************************
DECLARATION:
function Format(var FHash : TFormatHashTable;
FormulasDisplayed : Boolean) : FormatType; virtual;
UNIT:
GLCELL.PAS
55
DESCRIPTION:
Returns the format value for the cell. ABSTRACT METHOD.
PARAMETERS' DESCRIPTION:
FHash : a format hash table.
FormulasDisplayed : indicates if formulas (not their results) are
being displayed, which affects the default
format value for formula cells.
REMARKS:
Each derived object type must override this method to return the
appropiate default format value for the cell, in case there is not a
format value for the cell in the format hash table.
************************************************************************
TCell.FormattedString function
************************************************************************
DECLARATION:
function FormattedString(var OHash : TOverwriteHashTable;
var FHash : TFormatHashTable; var WHash : TWidthHashTable;
GetColWidth : GetColWidthFunc; CPos : CellPos;
FormulasDisplayed : Boolean; Start : Word; ColWidth : Byte;
var CurrencyString : CurrencyStr; var ClType: CellTypes):
String; virtual;
UNIT:
GLCELL.PAS
DESCRIPTION:
Returns the formatted string that will be used to display the cell's
contents in the spreadsheet.
PARAMETERS' DESCRIPTION:
OHash : an overwrite hash table; if an overwritten empty cell is
being displayed, the overwrite hash table is used to
determine which cell is overwriting the empty cell.
FHash : a format hash table; used to determine the cell's format.
WHash : a width hash table; used to determine the width of the of
the columns where the string will be displayed.
GetColWidth : function used to determine the width of a column.
CPos : the position of the cell being displayed (used when
displaying overwritten empty cells).
FormulasDisplayed : indicate if formulas (not their result) are being
displayed.
56
Start : place in the cell's contents where the displayed
string must start (used when displaying overwritten
empty cells).
ColWidth : width of the column where the cell is being
displayed (used when displaying overwritten empty
cells).
CurrencyString : if the cell's contents should be displayed with a
currency character, it is returned in this
parameter.
ClType : used to determine the type of the cell being
displayed (used when displaying overwritten empty
cells).
REMARKS:
Every derived object type must override this method to create, format
and return the appropiate string that will be used to display the cell's
contents in the spreadsheet.
************************************************************************
TCell.HashError function
************************************************************************
DECLARATION:
function HasError : Boolean; virtual;
UNIT:
GLCELL.PAS
DESCRIPTION:
Returns TRUE if the cell has a numeric error in it. ABSTRACT METHOD.
REMARKS:
Every derived object type must override this method to return the
appropiate boolean value when this function is called.
************************************************************************
TCell.Init CONSTRUCTOR
************************************************************************
DECLARATION:
constructor Init(InitLoc : CellPos);
UNIT:
GLCELL.PAS
DESCRIPTION:
Creates and initializes the TCell object.
57
PARAMETERS' DESCRIPTION:
InitLoc : the position the cell has in the spreadsheet.
************************************************************************
TCell.LegalValue function
************************************************************************
DECLARATION:
function LegalValue : Boolean; virtual;
UNIT:
GLCELL.PAS
DESCRIPTION:
Returns TRUE if the cell has a legal numeric value. ABSTRACT METHOD.
REMARKS:
Each derived object type must override this method to return the
appropiate value when this function is called.
************************************************************************
TCell.Loc field
************************************************************************
DECLARATION:
Loc : CellPos;
UNIT:
GLCELL.PAS
DESCRIPTION:
This is the position of the cell in the spreadsheet.
************************************************************************
TCell.Name function
************************************************************************
DECLARATION:
function Name : String; virtual;
UNIT:
GLCELL.PAS
DESCRIPTION:
Returns a string with the name of the cell. ABSTRACT METHOD.
REMARKS:
Each derived object type must override this method to return the
58
appropiate name for the cell when this function is called.
************************************************************************
TCell.OverwriteStart function
************************************************************************
DECLARATION:
function OverwriteStart(var FHash : TFormatHashTable;
var WHash : TWidthHashTable; GetColWidth : GetColWidthFunc;
EndCol : Word; DisplayFormulas : Boolean) : Word; virtual;
UNIT:
GLCELL.PAS
DESCRIPTION:
Determines, for overwritten empty cells, where in the overwriten data
they
they will start to display a value. ABSTRACT METHOD.
PARAMETERS' DESCRIPTION:
FHash : a format hash table; used to determine the format of the
cell and therefore, the size of the cell's contents.
WHash : a width hash table; used to determine the width of the
columns where the data is being displayed.
GetColWidth : function used to determine the width of a column (see
GetColWidth).
EndCol : column where the overwritten data will be displayed.
DisplayFormulas : indicates if formulas (not their results) are being
displayed.
REMARKS:
Every derived object type must override this method to return the
correct place of the overwriting data where empty overwritten cells will
start displaying the data.
************************************************************************
TCell.Overwritten function
************************************************************************
DECLARATION:
function Overwritten(var CHash : TCellHashTable;
var FHash : TFormatHashTable; var WHash : TWidthHashTable;
var LastPos : CellPos; MaxCols : Word;
GetColWidth : GetColWidthFunc; FormulasDisplayed : Boolean) :
Word; virtual;
UNIT:
GLCELL.PAS
59
DESCRIPTION:
Calculates how many empty cells the cell will overwrite. ABSTRACT
METHOD.
PARAMETERS' DESCRIPTION:
CHash : a cell hash table; used to determine if there is a non-
empty cell near, which may affect the number of cells the
cell will overwrite.
WHash : a width hash table; used to determine the width of the
columns where the cell is being displayed, which affects
how many cells the cell will overwrite.
FHash : a format hash table; used to determine the format of the
cell, which may affect how many cells it will overwrite.
LastPos : the lower right corner of the block of cells in the
spreadsheet actually used.
MaxCols : maximum number of columns in the spreadsheet.
GetColWidth : a function used to determine the width of a column (see
GetColWidth).
FormulasDisplayed : indicates if formulas (not their results) are being
displayed, which affects how many cells a formula
cell may overwrite.
REMARKS:
Each derived object type must override this method to return the correct
number of cells the cell will overwrite.
************************************************************************
TCell.ShouldUpdate function
************************************************************************
DECLARATION:
function ShouldUpdate : Boolean; virtual;
UNIT:
GLCELL.PAS
DESCRIPTION:
Returns TRUE if the cell needs to be udpated when the spreadsheet
changes. ABSTRACT METHOD.
REMARKS:
Every derived object type must override this method to return the
appropiate boolean value according to the nature of the cell's contents.
60
************************************************************************
TCell.Width function
************************************************************************
DECLARATION:
function Width(var FHash : TFormatHashTable;
FormulasDisplayed : Boolean) : Word; virtual;
UNIT:
GLCELL.PAS
DESCRIPTION:
Returns the width of a cell (including the cells it will overwrite).
ABSTRACT METHOD.
PARAMETERS' DESCRIPTION:
FHash : a format hash table.
FormulasDisplayed : indicates if formulas (not their results) are
being displayed, which affects the the width of
formula cells.
REMARKS:
Each derived object type must override this method to return the correct
width of the cell.
************************************************************************
TCellHashTable object
************************************************************************
DECLARATION:
TCellHashTable = OBJECT(THashTable)
CurrCell : PCell;
CurrLoc : CellPos;
constructor Init(InitBuckets : BucketRange);
destructor Done;
function Add(ACell : PCell) : Boolean;
procedure Delete(DelLoc : CellPos; var DeletedCell : PCell);
function Search(SPos : CellPos) : PCell;
function HashValue : LongInt; virtual;
function Found(Item : HashItemPtr) : Boolean; virtual;
procedure CreateItem(var Item : HashItemPtr); virtual;
function ItemSize : HashItemSizeRange; virtual;
procedure Load(var S : TStream; Total : Longint;
AdjustAfter: CellPos; RowAdjustment, ColAdjustment: Integer);
procedure Store(var S : TStream);
function FirstItem : PCell;
function NextItem : PCell;
end; {...TCellHashTable }
UNIT:
GLCELL.PAS
61
DESCRIPTION:
TCellHashTable stores pointers to all the cells in a spreadsheet.
************************************************************************
TCellHashTable.Add function
************************************************************************
DECLARATION:
function Add(ACell : PCell) : Boolean;
UNIT:
GLCELL.PAS
DESCRIPTION:
Adds a cell to the hash table.
PARAMETERS' DESCRIPTION:
ACell : cell pointer that will be added to the hash table.
************************************************************************
TCellHashTable.CreateItem procedure
************************************************************************
DECLARATION:
procedure CreateItem(var Item : HashItemPtr); virtual;
UNIT:
GLCELL.PAS
DESCRIPTION:
Creates a HashItem and puts in it the information to be stored (in this
case, a cell pointer).
PARAMETERS' DESCRIPTION:
Item : pointer to the HashItem created.
REMARKS:
You will never need to call this method directly.
(see TCellHashTable.Init)
************************************************************************
TCellHashTable.CurrCell field
************************************************************************
DECLARATION:
CurrCell : PCell;
62
UNIT:
GLCELL.PAS
DESCRIPTION:
Stores a pointer to the cell being added, searched for or deleted from
the hash table.
REMARKS:
You will never need to access this field directly.
************************************************************************
TCellHashTable.CurrLoc field
************************************************************************
DECLARATION:
CurrLoc : CellPos;
UNIT:
GLCELL.PAS
DESCRIPTION:
Stores the location of the cell being added, searched for or deleted
from the hash table.
REMARKS:
You will never need to access this field directly.
************************************************************************
TCellHashTable.Delete procedure
************************************************************************
DECLARATION:
procedure Delete(DelLoc : CellPos; var DeletedCell : PCell);
UNIT:
GLCELL.PAS
DESCRIPTION:
Deletes a cell from the hash table.
PARAMETERS' DESCRIPTION:
DelLoc : It is the position in the spreadsheet of the cell to
be deleted.
DeletedCell : After deleting the cell from the hash table, a
pointer to cell object is returned in the
DeletedCell parameter (or NIL if the item is not
63
found).
REMARKS:
If you call TCellHashTable.Delete directly, be sure to dispose the
deleted cell object when you no longer need it.
************************************************************************
TCellHashTable.Done DESTRUCTOR
************************************************************************
DECLARATION:
destructor Done;
UNIT:
GLCELL.PAS
DESCRIPTION:
Performs the necessary cleanup and disposal of the cell hash table.
************************************************************************
TCellHashTable.FirstItem function
************************************************************************
DECLARATION:
function FirstItem : PCell;
UNIT:
GLCELL.PAS
DESCRIPTION:
Returns the first HashItem (cell pointer) in a cell hash table.
REMARKS:
To find all the items in a hash table, call FirstItem to get the first
one and then call NextItem to get the rest.
************************************************************************
TCellHashTable.Found function
************************************************************************
DECLARATION:
function Found(Item : HashItemPtr) : Boolean; virtual;
UNIT:
GLCELL.PAS
64
DESCRIPTION:
This function is called by TCellHashTable.Search. It returns a Boolean
value indicating whether the current HashItem is the one being searched
for.
PARAMETERS' DESCRIPTION:
Item : is a pointer to a HashItem in the hash table.
REMARKS:
You will never need to call this method directly.
************************************************************************
TCellHashTable.HashValue function
************************************************************************
DECLARATION:
function HashValue : LongInt; virtual;
UNIT:
GLCELL.PAS
DESCRIPTION:
Returns a number that is used to determine the number of the bucket a
HashItem should be put in.
REMARKS:
This function is also used to search for a HashItem a hash table. The
linked list (bucket) in which a HashItem is located is determined using
the value returned by the HashValue function; then a sequential search
is performed in the list until TCellHashTable.Found returns TRUE.
All cells with the same HashValue are placed in the same bucket.
************************************************************************
TCellHashTable.Init CONSTRUCTOR
************************************************************************
DECLARATION:
constructor Init(InitBuckets: BucketRange);
UNIT:
GLCELL.PAS
DESCRIPTION:
Creates and initializes the TCellHashTable object.
65
PARAMETERS' DESCRIPTION:
InitBuckets: The number of buckets the hash table will have.
REMARKS:
DEFINITION: A bucket is a linked list of HashItems that have the same
hash value.
DEFINITION: A HashItem is a data structure used to store information in
the hash table. A HashItem is created by the CreateItem procedure.
(see TCHASH.INT, THashTable.Add, TCellHashTable,
TCellHashTable.HashValue)
************************************************************************
TCellHashTable.ItemSize function
************************************************************************
DECLARATION:
function ItemSize : HashItemSizeRange; virtual;
UNIT:
GLCELL.PAS
DESCRIPTION:
Returns the size of a HashItem.
REMARKS:
The size of the HashItem depends on the information to be stored.
You will never need to call this method directly.
************************************************************************
TCellHashTable.Load procedure
************************************************************************
DECLARATION:
procedure Load(var S : TStream; Total : Longint;
AdjustAfter: CellPos; RowAdjustment, ColAdjustment: Integer);
UNIT:
GLCELL.PAS
DESCRIPTION:
Loads a cell hash table from disk.
PARAMETERS' DESCRIPTION:
S : the stream from which the cell hash table will be
loaded.
66
Total : the total number of HashItems (cell pointers) that
will be loaded from the stream.
AdjustAfter : The location of all cells below and to the left of
this position, will be increased by RowAdjustment
and ColAdjustment respectively.
RowAdjustment : the row location of all cells below AdjustAfter will
be increased by this amount.
ColAdjustment : the column location of all cells to the left of
AdjustAfter will be increased by this amount.
REMARKS:
The AdjustAfter, RowAdjustment and ColAdjustment parameters are used to
relocate the cells in the cell hash table, when adding or deleting rows
or columns.
(see TSpreadSheet.InsertColumns, TSpreadSheet.InsertRows,
TSpreadSheet.DeleteColumns, TSpreadSheet.DeleteRows)
************************************************************************
TCellHashTable.NextItem function
************************************************************************
DECLARATION:
function NextItem : PCell;
UNIT:
GLCELL.PAS
DESCRIPTION:
Returns the second and subsequent HashItems in a cell hash table.
REMARKS:
(see TCellHashTable.FirstItem)
************************************************************************
TCellHashTable.Search function
************************************************************************
DECLARATION:
function Search(SPos : CellPos) : PCell;
UNIT:
GLCELL.PAS
DESCRIPTION:
Searches for a cell in the spreadsheet; it returns a pointer to the cell
67
if it was found, or a pointer to an empty cell otherwise.
PARAMETERS' DESCRIPTION:
SPos : the cell's position in the spreadsheet.
REMARKS:
(see TCellHashTable.Found)
************************************************************************
TCellHashTable.Store procedure
************************************************************************
DECLARATION:
procedure Store(var S : TStream);
UNIT:
GLCELL.PAS
DESCRIPTION:
Writes a cell hash table to disk.
PARAMETERS' DESCRIPTION:
S : the stream to which the cell hash table will be written.
************************************************************************
TEmptyCell object
************************************************************************
DECLARATION:
TEmptyCell = object(TCell)
constructor Init;
function CellType : CellTypes; virtual;
function LegalValue : Boolean; virtual;
function Name : String; virtual;
function Format(var FHash : TFormatHashTable;
FormulasDisplayed : Boolean) : FormatType; virtual;
function Width(var FHash : TFormatHashTable;
FormulasDisplayed : Boolean) : Word; virtual;
function Overwritten(var CHash : TCellHashTable;
var FHash : TFormatHashTable; var WHash : TWidthHashTable;
var LastPos : CellPos; MaxCols : Word;
GetColWidth : GetColWidthFunc; FormulasDisplayed : Boolean) :
Word; virtual;
function ShouldUpdate : Boolean; virtual;
function HasError : Boolean; virtual;
function CurrValue : Extended; virtual;
function OverwriteStart(var FHash : TFormatHashTable;
var WHash : TWidthHashTable; GetColWidth : GetColWidthFunc;
EndCol : Word; DisplayFormulas : Boolean) : Word; virtual;
procedure EditString(MaxDecPlaces : Byte; var Input : String);
virtual;
function DisplayString(FormulasDisplayed : Boolean;
68
MaxDecPlaces : Byte) : String; virtual;
function FormattedString(var OHash : TOverwriteHashTable;
var FHash : TFormatHashTable; var WHash : TWidthHashTable;
GetColWidth : GetColWidthFunc; CPos : CellPos;
FormulasDisplayed : Boolean; Start : Word; ColWidth : Byte;
var CurrencyString : CurrencyStr; var ClType: CellTypes):
String; virtual;
function CopyString : String; virtual;
end; {..TEmptyCell }
UNIT:
GLCELL.PAS
DESCRIPTION:
A TCell's descendant that is used to display all empty and/or
overwritten cells. Only one instance is TEmptyCell needs to be
constructed.
REMARKS:
(see Empty, TCell)
************************************************************************
TEmptyCell.CellType function
************************************************************************
DECLARATION:
(see TCell.CellType)
UNIT:
GLCELL.PAS
************************************************************************
TEmptyCell.CopyString function
************************************************************************
DECLARATION:
(see TCell.CopyString)
UNIT:
GLCELL.PAS
REMARKS:
This function always returns an empty string.
************************************************************************
TEmptyCell.CurrValue function
************************************************************************
DECLARATION:
(see TCell.CurrValue)
69
UNIT:
GLCELL.PAS
REMARKS:
This function always returns 0.
************************************************************************
TEmptyCell.DisplayString function
************************************************************************
DECLARATION:
(see TCell.DisplayString)
UNIT:
GLCELL.PAS
REMARKS:
This function always returns an empty string.
************************************************************************
TEmptyCell.EditString procedure
************************************************************************
DECLARATION:
(see TCell.EditString)
UNIT:
GLCELL.PAS
REMARKS:
This procedure always returns an empty string in the input parameter.
************************************************************************
TEmptyCell.Format function
************************************************************************
DECLARATION:
(see TCell.Format)
UNIT:
GLCELL.PAS
REMARKS:
This function always returns 0 since there is no point in formatting an
empty cell.
70
************************************************************************
TEmptyCell.FormattedString function
************************************************************************
DECLARATION:
(see TCell.FormattedString)
UNIT:
GLCELL.PAS
REMARKS:
This functions checks if the cell is overwritten by another cell. If
true, it returns the portion of the other cell's data that overwrites
the empty cell. If the empty cell is not overwritten by another cell,
it returns an empty string.
************************************************************************
TEmptyCell.HasError function
************************************************************************
DECLARATION:
(see TCell.HasError)
UNIT:
GLCELL.PAS
REMARKS:
This function always returns FALSE.
************************************************************************
TEmptyCell.Init CONSTRUCTOR
************************************************************************
DECLARATION:
constructor Init;
UNIT:
GLCELL.PAS
DESCRIPTION:
Creates and initializes the TEmptyCell object.
************************************************************************
TEmptyCell.LegalValue function
************************************************************************
DECLARATION:
(see TCell.LegalValue)
71
UNIT:
GLCELL.PAS
REMARKS:
This function always returns TRUE.
************************************************************************
TEmptyCell.Name function
************************************************************************
DECLARATION:
(see TCell.Name)
UNIT:
GLCELL.PAS
************************************************************************
TEmptyCell.OverwriteStart function
************************************************************************
DECLARATION:
(see TCell.OverwriteStart)
UNIT:
GLCELL.PAS
REMARKS:
This function always returns 1.
************************************************************************
TEmptyCell.Overwritten function
************************************************************************
DECLARATION:
(see TCell.Overwritten)
UNIT:
GLCELL.PAS
REMARKS:
This function always returns 0.
************************************************************************
TEmptyCell.ShouldUpdate function
************************************************************************
DECLARATION:
(see TCell.ShouldUpdate)
72
UNIT:
GLCELL.PAS
REMARKS:
This function always returns FALSE.
************************************************************************
TEmptyCell.Width function
************************************************************************
DECLARATION:
(see TCell.Width)
UNIT:
GLCELL.PAS
REMARKS:
This function always returns 0.
************************************************************************
TFormatHashTable object
************************************************************************
DECLARATION:
TFormatHashTable = OBJECT(THashTable)
CurrStart,
CurrStop : CellPos;
CurrFormat : FormatType;
constructor Init;
destructor Done;
function Overwrite(NewStart, NewStop : CellPos) : Boolean;
function Add(NewStart, NewStop : CellPos;
NewFormat : FormatType) : Boolean;
function Delete(DStart, DStop : CellPos) : Boolean;
function Search(SPos : CellPos; var F : FormatType) : Boolean;
function HashValue : LongInt; virtual;
function Found(Item : HashItemPtr) : Boolean; virtual;
procedure CreateItem(var Item : HashItemPtr); virtual;
function ItemSize : HashItemSizeRange; virtual;
procedure Load(var S : TStream; Total : Longint);
procedure Store(var S : TStream);
end; {...TFormatHashTable }
UNIT:
GLCELL.PAS
DESCRIPTION:
Used to store information about areas formatted with a format that
differs from the default.
73
REMARKS:
The area and the format are stored in the hash table.
************************************************************************
TFormatHashTable.Add function
************************************************************************
DECLARATION:
function Add(NewStart, NewStop : CellPos;
NewFormat : FormatType) : Boolean;
UNIT:
GLCELL.PAS
DESCRIPTION:
Adds a new formatted area to the format hash table.
PARAMETERS' DESCRIPTION:
NewStart : Upper left corner of the area being added to the format
hash table.
NewStop : Lower right corner of the area being added to the format
hash table.
NewFormat : Format value assigned to the area being added to the
format hash table.
REMARKS:
Add will return TRUE if the cell was successfully added; FALSE
otherwise.
(see TFormatHashTable.Overwrite, THashTable.Add)
************************************************************************
TFormatHashTable.CreateItem procedure
************************************************************************
DECLARATION:
(see TCellHashTable.CreateItem)
UNIT:
GLCELL.PAS
************************************************************************
TFormatHashTable.CurrFormat field
************************************************************************
DECLARATION:
CurrFormat : FormatType;
74
UNIT:
GLCELL.PAS
DESCRIPTION:
Stores the format value being added or searched for -- if found --.
REMARKS:
You will never need to access this field directly.
************************************************************************
TFormatHashTable.CurrStart field
************************************************************************
DECLARATION:
CurrStart : CellPos;
UNIT:
GLCELL.PAS
DESCRIPTION:
Stores the location in the spreadsheet of the upper left corner of the
block (area) of cells that is being added to the hash table; also used
by the Search function to store the position of the cell for which a
format is being searched.
REMARKS:
You will never need to access this field directly.
(see TFormatHashTable.CurrStop, TFormatHashTable.CurrFormat,
TFormatHashTable.Search)
************************************************************************
TFormatHashTable.CurrStop field
************************************************************************
DECLARATION:
CurrStop : CellPos;
UNIT:
GLCELL.PAS
DESCRIPTION:
Stores the location in the spreadsheet of the lower right corner of the
block (area) of cells being added to the hash table.
REMARKS:
You will never need to access this field directly.
75
(see TFormatHashTable.CurrStart, TFormatHashTable.CurrFormat)
************************************************************************
TFormatHashTable.Delete function
************************************************************************
DECLARATION:
function Delete(DStart, DStop : CellPos) : Boolean;
UNIT:
GLCELL.PAS
DESCRIPTION:
Deletes an area from the hash table.
PARAMETERS' DESCRIPTION:
DStart : Upper left corner of the area to be deleted.
DStop : Lower right corner of the area to be deleted.
REMARKS:
This function returns TRUE if the operation was completed successfully.
However, this does not mean that the area actually existed in the hash
table.
The area that is being deleted can be any area; it does not have to be
exactly one of the areas added to the hash table with the Add function.
************************************************************************
TFormatHashTable.Done DESTRUCTOR
************************************************************************
DECLARATION:
destructor Done;
UNIT:
GLCELL.PAS
DESCRIPTION:
Performs the necessary cleanup and disposal of the format hash table.
************************************************************************
TFormatHashTable.Found function
************************************************************************
DECLARATION:
(see TCellHashTable.Found)
76
UNIT:
GLCELL.PAS
************************************************************************
TFormatHashTable.HashValue function
************************************************************************
DECLARATION:
(see TCellHashTable.HashValue)
UNIT:
GLCELL.PAS
************************************************************************
TFormatHashTable.Init CONSTRUCTOR
************************************************************************
DECLARATION:
constructor Init;
UNIT:
GLCELL.PAS
DESCRIPTION:
Creates and initializes the TFormatHashTable object.
REMARKS:
(see TFormatHashTable)
************************************************************************
TFormatHashTable.ItemSize function
************************************************************************
DECLARATION:
(see TCellHashTable.ItemSize)
UNIT:
GLCELL.PAS
************************************************************************
TFormatHashTable.Load procedure
************************************************************************
DECLARATION:
procedure Load(var S : TStream; Total : Longint);
UNIT:
GLCELL.PAS
77
DESCRIPTION:
Loads a format hash table from disk.
PARAMETERS' DESCRIPTION:
S : the stream from which the format hash table will be loaded.
Total : the total number of HashItems that will be loaded from the
stream.
************************************************************************
TFormatHashTable.Overwrite function
************************************************************************
DECLARATION:
function Overwrite(NewStart, NewStop : CellPos) : Boolean;
UNIT:
GLCELL.PAS
DESCRIPTION:
Checks to see if a new area has overwritten an old one, requiring the
old area to be completely overwritten or broken into parts.
PARAMETERS' DESCRIPTION:
NewStart : Upper left corner of the new area being added to the hash
table.
NewStop : Lower right corner of the new area being added to the
hash table.
REMARKS:
You will never need to call this method directly.
(see TFormatHashTable.Add)
************************************************************************
TFormatHashTable.Search function
************************************************************************
DECLARATION:
function Search(SPos : CellPos; var F : FormatType) : Boolean;
UNIT:
GLCELL.PAS
DESCRIPTION:
Determines if a cell is part of a formatted area and if true, returns
the appropriate format value for the cell.
78
PARAMETERS' DESCRIPTION:
SPos : The position in the spreadsheet of the cell whose format value
is being determined.
F : The appropriate format value for the cell.
REMARKS:
If the cell is not a formatted cell, the Search returns FALSE.
************************************************************************
TFormatHashTable.Store procedure
************************************************************************
DECLARATION:
procedure Store(var S : TStream);
UNIT:
GLCELL.PAS
DESCRIPTION:
Writes a format hash table to disk.
PARAMETERS' DESCRIPTION:
S : the stream to which the format hash table will be written.
************************************************************************
TFormulaCell object
************************************************************************
DECLARATION:
TFormulaCell = object(TCell)
Error : Boolean;
Value : Extended;
Formula : LString;
constructor Init(InitLoc : CellPos; InitError : Boolean;
InitValue : Extended; InitFormula : String);
function CellType : CellTypes; virtual;
function LegalValue : Boolean; virtual;
function Name : String; virtual;
function Format(var FHash : TFormatHashTable;
FormulasDisplayed : Boolean) : FormatType; virtual;
function Width(var FHash : TFormatHashTable;
FormulasDisplayed : Boolean) : Word; virtual;
function Overwritten(var CHash : TCellHashTable;
var FHash : TFormatHashTable; var WHash : TWidthHashTable;
var LastPos : CellPos; MaxCols : Word;
GetColWidth : GetColWidthFunc; FormulasDisplayed : Boolean) :
Word; virtual;
function ShouldUpdate : Boolean; virtual;
function HasError : Boolean; virtual;
function CurrValue : Extended; virtual;
function OverwriteStart(var FHash : TFormatHashTable;
79
var WHash : TWidthHashTable; GetColWidth : GetColWidthFunc;
EndCol : Word; DisplayFormulas : Boolean) : Word; virtual;
procedure EditString(MaxDecPlaces : Byte; var Input : String);
virtual;
function DisplayString(FormulasDisplayed : Boolean;
MaxDecPlaces : Byte) : String; virtual;
function FormattedString(var OHash : TOverwriteHashTable;
var FHash : TFormatHashTable; var WHash : TWidthHashTable;
GetColWidth : GetColWidthFunc; CPos : CellPos;
FormulasDisplayed : Boolean; Start : Word; ColWidth : Byte;
var CurrencyString : CurrencyStr; var ClType: CellTypes):
String; virtual;
function CopyString : String; virtual;
constructor Load(var S : TStream);
procedure Store(var S : TStream);
function GetFormula : String;
destructor Done; virtual;
end; {...TFormulaCell }
UNIT:
GLCELL.PAS
DESCRIPTION:
A TCell's descendant that stores a formula its result.
************************************************************************
TFormulaCell.CellType function
************************************************************************
DECLARATION:
(see TCell.CellType)
UNIT:
GLCELL.PAS
************************************************************************
TFormulaCell.CopyString function
************************************************************************
DECLARATION:
(see TCell.CopyString)
UNIT:
GLCELL.PAS
************************************************************************
TFormulaCell.CurrValue function
************************************************************************
DECLARATION:
(see TCell.CurrValue)
80
UNIT:
GLCELL.PAS
************************************************************************
TFormulaCell.DisplayString function
************************************************************************
DECLARATION:
(see TCell.DisplayString)
UNIT:
GLCELL.PAS
************************************************************************
TFormulaCell.Done DESTRUCTOR
************************************************************************
DECLARATION:
destructor Done; virtual;
UNIT:
GLCELL.PAS
DESCRIPTION:
Performs all the necessary cleanup and disposal of the TFormulaCell
object.
************************************************************************
TFormulaCell.EditString procedure
************************************************************************
DECLARATION:
(see TCell.EditString)
UNIT:
GLCELL.PAS
************************************************************************
TFormulaCell.Error field
************************************************************************
DECLARATION:
Error : Boolean;
UNIT:
GLCELL.PAS
DESCRIPTION:
Indicates if there is a numeric error in the value stored by the cell.
81
************************************************************************
TFormulaCell.Format function
************************************************************************
DECLARATION:
(see TCell.Format)
UNIT:
GLCELL.PAS
************************************************************************
TFormulaCell.FormattedString function
************************************************************************
DECLARATION:
(see TCell.FormattedString)
UNIT:
GLCELL.PAS
************************************************************************
TFormulaCell.Formula field
************************************************************************
DECLARATION:
Formula : LString;
UNIT:
GLCELL.PAS
DESCRIPTION:
Used to store the formula string.
REMARKS:
(see TTextCell.Txt)
************************************************************************
TFormulaCell.GetFormula function
************************************************************************
DECLARATION:
function GetFormula : String;
UNIT:
GLCELL.PAS
DESCRIPTION:
Returns the formula string stored by the cell.
82
************************************************************************
TFormulaCell.HasError function
************************************************************************
DECLARATION:
(see TCell.HasError)
UNIT:
GLCELL.PAS
************************************************************************
TFormulaCell.Init CONSTRUCTOR
************************************************************************
DECLARATION:
constructor Init(InitLoc : CellPos; InitError : Boolean;
InitValue : Extended; InitFormula : String);
UNIT:
GLCELL.PAS
DESCRIPTION:
Creates and initializes the TFormulaCell object.
PARAMETERS' DESCRIPTION:
InitLoc : the position of the cell in the spreadsheet.
InitError : indicates if there is a numerical error in the cell's
value (the formula's result).
InitValue : the value of the cell (the formula's result).
InitFormula : the formula that the cell will store.
************************************************************************
TFormulaCell.LegalValue function
************************************************************************
DECLARATION:
(see TCell.LegalValue)
UNIT:
GLCELL.PAS
************************************************************************
TFormulaCell.Load CONSTRUCTOR
************************************************************************
DECLARATION:
constructor Load(var S: TStream);
83
UNIT:
GLCELL.PAS
DESCRIPTION:
Loads the cell's contents from disk.
PARAMETERS' DESCRIPTION:
S : the stream from which will be read the cell's contents.
************************************************************************
TFormulaCell.Name function
************************************************************************
DECLARATION:
(see TCell.Name)
UNIT:
GLCELL.PAS
************************************************************************
TFormulaCell.OverwriteStart function
************************************************************************
DECLARATION:
(see TCell.OverwriteStart)
UNIT:
GLCELL.PAS
************************************************************************
TFormulaCell.Overwritten function
************************************************************************
DECLARATION:
(see TCell.Overwritten)
UNIT:
GLCELL.PAS
************************************************************************
TFormulaCell.ShouldUpdate function
************************************************************************
DECLARATION:
(see TCell.ShouldUpdate)
UNIT:
GLCELL.PAS
84
************************************************************************
TFormulaCell.Store procedure
************************************************************************
DECLARATION:
procedure Store(var S: TStream);
UNIT:
GLCELL.PAS
DESCRIPTION:
Writes the cell's contents to disk.
PARAMETERS' DESCRIPTION:
S : the stream to which the cell's contents will be written.
************************************************************************
TFormulaCell.Value field
************************************************************************
DECLARATION:
Value : Extended;
UNIT:
GLCELL.PAS
DESCRIPTION:
The numeric value of the formula.
REMARKS:
(see TFormulaCell.Formula)
************************************************************************
TFormulaCell.Width function
************************************************************************
DECLARATION:
(see TCell.Width)
UNIT:
GLCELL.PAS
************************************************************************
THashTable object
************************************************************************
DECLARATION:
THashTable = OBJECT(HashTable)
function Add: Boolean;
end; {...THashTable }
85
UNIT:
GLCELL.PAS
DESCRIPTION:
Extends Borland's HashTable object; it checks the value of the
LowMemory function before adding any data to the hash table.
REMARKS:
All the hash tables used in OOGrid Library(TM) v1.0 are descendants of
THashTable.
(see TCHASH.INT)
************************************************************************
THashTable.Add function
************************************************************************
DECLARATION:
function Add: Boolean;
UNIT:
GLCELL.PAS
DESCRIPTION:
Adds data to the hash table by calling HashTable.Add.
REMARKS:
Add checks the value of the LowMemory function before calling
HashTable.Add. If it returns FALSE, no data is added to the hash table
and Add returns FALSE; otherwise, the data is added and Add returns
TRUE.
The HashTable.Add method adds data to the hash table by calling the
CreateItem method. Since HashTable.CreateItem is an abstract method,
this method must be overridden in a HashTable's descendant to actually
add any data.
(see TCHASH.INT)
************************************************************************
THeadersHashTable object
************************************************************************
DECLARATION:
THeadersHashTable = OBJECT(THashTable)
CurrCol : Word;
CurrName : String[80];
constructor Init(InitBuckets : BucketRange);
function Add(SCol : Word; NewName: String) : Boolean;
procedure CreateItem(var Item : HashItemPtr); virtual;
86
procedure Delete(Col : Word);
function Found(Item : HashItemPtr) : Boolean; virtual;
function HashValue : LongInt; virtual;
function ItemSize : HashItemSizeRange; virtual;
procedure Load(var S : TStream; Total : Longint);
function Search(Col : Word; var Name: String) : Boolean;
function SearchName(Name: String; var Col: Word) : Boolean;
procedure Store(var S : TStream);
destructor Done;
end; {...THeadersHashTable }
UNIT:
GLCELL.PAS
DESCRIPTION:
Stores custom assigned column headers.
REMARKS:
Stores the column number and the column's header.
************************************************************************
THeadersHashTable.Add function
************************************************************************
DECLARATION:
function Add(SCol : Word; NewName: String) : Boolean;
UNIT:
GLCELL.PAS
DESCRIPTION:
Adds a new header to the headers hash table.
PARAMETERS' DESCRIPTION:
SCol : number of the column whose header is being added.
NewName : the new header for the column.
************************************************************************
THeadersHashTable.CreateItem procedure
************************************************************************
DECLARATION:
(see TCellHashTable.CreateItem)
UNIT:
GLCELL.PAS
87
************************************************************************
THeadersHashTable.CurrCol field
************************************************************************
DECLARATION:
CurrCol : Word
UNIT:
GLCELL.PAS
DESCRIPTION:
Stores the column for which a header is being added, searched for or
deleted from the headers hash table.
REMARKS:
You will never need to access this field directly.
************************************************************************
THeadersHashTable.CurrName field
************************************************************************
DECLARATION:
CurrName : String[80];
UNIT:
GLCELL.PAS
DESCRIPTION:
Stores the header that is being added, searched for -- if found -- or
deleted from the headers hash table.
REMARKS:
You will never need to access this field directly.
************************************************************************
THeadersHashTable.Delete procedure
************************************************************************
DECLARATION:
procedure Delete(Col : Word);
UNIT:
GLCELL.PAS
DESCRIPTION:
Deletes a header from the headers hash table.
88
PARAMETERS' DESCRIPTION:
Col : number of the column whose header will be deleted.
************************************************************************
THeadersHashTable.Done DESTRUCTOR
************************************************************************
DECLARATION:
destructor Done;
UNIT:
GLCELL.PAS
DESCRIPTION:
Performs the necessary cleanup and disposal of the headers hash table.
************************************************************************
THeadersHashTable.Found function
************************************************************************
DECLARATION:
(see TCellHashTable.Found)
UNIT:
GLCELL.PAS
************************************************************************
THeadersHashTable.HashValue function
************************************************************************
DECLARATION:
(see TCellHashTable.HashValue)
UNIT:
GLCELL.PAS
************************************************************************
THeadersHashTable.Init CONSTRUCTOR
************************************************************************
DECLARATION:
constructor Init(InitBuckets : BucketRange);
UNIT:
GLCELL.PAS
DESCRIPTION:
Creates and initializes the THeadersHashTable object.
89
PARAMETERS' DESCRIPTION:
InitBuckets : number of buckets (linked lists) the headers hash table
will have.
************************************************************************
THeadersHashTable.ItemSize function
************************************************************************
DECLARATION:
(see TCellHashTableashValue.ItemSize)
UNIT:
GLCELL.PAS
************************************************************************
THeadersHashTable.Load procedure
************************************************************************
DECLARATION:
procedure Load(var S : TStream; Total : Longint);
UNIT:
GLCELL.PAS
DESCRIPTION:
Loads a headers hash table from disk.
PARAMETERS' DESCRIPTION:
S : stream from which the headers hash table will be loaded.
Total : total number of items that will be loaded from the stream.
************************************************************************
THeadersHashTable.Search function
************************************************************************
DECLARATION:
function Search(Col : Word; var Name: String) : Boolean;
UNIT:
GLCELL.PAS
DESCRIPTION:
Searches for a header given the column number.
PARAMETERS' DESCRIPTION:
Col : the number of the column whose header is being searched.
Name : this parameter will be set to the column's header, if found.
90
REMARKS:
Search will return TRUE if the header was found; FALSE otherwise.
************************************************************************
THeadersHashTable.SearchName function
************************************************************************
DECLARATION:
function SearchName(Name: String; var Col: Word) : Boolean;
UNIT:
GLCELL.PAS
DESCRIPTION:
Searches for a column number, given the header.
PARAMETERS' DESCRIPTION:
Name : the header of the column whose is being searched.
Col : this parameter will be set to the column number, if found.
REMARKS:
SearchName will return TRUE if the header was found; FALSE otherwise.
************************************************************************
THeadersHashTable.Store procedure
************************************************************************
DECLARATION:
procedure Store(var S : TStream);
UNIT:
GLCELL.PAS
DESCRIPTION:
Writes a headers hash table to disk.
PARAMETERS' DESCRIPTION:
S : stream to which the headers hash table will be written.
************************************************************************
TLimScrollBar object
************************************************************************
DECLARATION:
TLimScrollBar = object(TScrollBar)
OldValue : Word;
DisplayLimit : Word;
91
constructor Init(var Bounds: TRect; ADisplayLimit: Integer);
function Change: Integer;
procedure Draw; virtual;
procedure HandleEvent(var Event: TEvent); virtual;
constructor Load(var S: TStream);
procedure Store(var S: TStream);
end; {...TLimScrollBar }
UNIT:
GLVIEWS.PAS
DESCRIPTION:
A TScrollBar's descendant that allows the definition of a display
subrange.
REMARKS:
This object is particularly useful if the TScroller object that owns the
scrollbar has a very broad scrolling range (for example, 32767 columns,
like the spreadsheet). In this case, a normal TScrollBar object would
be of no use at all, since one click in an arrow would move the
scroller more than 1000 columns. TLimScrollBar lets you define a smaller
scrolling range, making it more useful than a TScrollBar in this
situations.
************************************************************************
TLimScrollBar.Change function
************************************************************************
DECLARATION:
function Change: Integer;
UNIT:
GLVIEWS.PAS
DESCRIPTION:
Returns the amount the scrollbar value changed when last moved (the
difference between its current value and its old value).
REMARKS:
(see TLimScrollBar.OldValue)
************************************************************************
TLimScrollBar.DisplayLimit field
************************************************************************
DECLARATION:
DisplayLimit : Word;
92
UNIT:
GLVIEWS.PAS
DESCRIPTION:
This is the relative maximum value that is used to display the
scrollbar.
REMARKS:
No matter what the position of the scrollbar is, this will always be the
maximum value when displaying the scrollbar. For example, if
DisplayLimit is 100 and the value of the scrollbar is 32767, the
scrollbar would still be displayed as if the scrollbar's maximum value
were 100.
Since the relative maximum value is DisplayLimit, the scrollbar
indicator will not move unless the scrollbar has a value equal to or
smaller than DisplayLimit. Movement outside this range will not be
displayed by the scrollbar.
************************************************************************
TLimScrollBar.Draw procedure
************************************************************************
DECLARATION:
procedure Draw; virtual;
UNIT:
GLVIEWS.PAS
DESCRIPTION:
Draws the TLimScrollBar object.
REMARKS:
Before drawing the scrollbar object, TScrollBar's Max field is
temporarily set to DisplayLimit; TScrollBar's Draw method is then
called. After the call to TScrollBar.Draw, TScrollBar.Max is set to its
original value.
************************************************************************
TLimScrollBar.HandleEvent procedure
************************************************************************
DECLARATION:
procedure HandleEvent(var Event: TEvent); virtual;
UNIT:
GLVIEWS.PAS
93
DESCRIPTION:
Implements the object's event handling.
PARAMETERS' DESCRIPTION:
Event : the event that will be evaluated and, if possible,
handled by this method
REMARKS:
It handles mouse clicks inside the scrollbar, in the case that the
scrollbar's value is outside the display limit.
************************************************************************
TLimScrollBar.Init CONSTRUCTOR
************************************************************************
DECLARATION:
constructor Init(var Bounds: TRect; ADisplayLimit: Integer);
UNIT:
GLVIEWS.PAS
DESCRIPTION:
Creates and initializes the TLimScrollBar object.
PARAMETERS' DESCRIPTION:
Bounds : the area where the scrollbar will be displayed
ADisplayLimit : the scrollbar's relative maximum value
REMARKS:
(see TLimScrollBar, TLimScrollBar.DisplayLimit)
************************************************************************
TLimScrollBar.Load CONSTRUCTOR
************************************************************************
DECLARATION:
constructor Load(var S: TStream);
UNIT:
GLVIEWS.PAS
DESCRIPTION:
Loads the scrollbar from disk.
94
PARAMETERS' DESCRIPTION:
S : the stream from which the scrollbar will be loaded.
************************************************************************
TLimScrollBar.OldValue field
************************************************************************
DECLARATION:
OldValue : Word;
UNIT:
GLVIEWS.PAS
DESCRIPTION:
Stores the last position of the scrollbar.
REMARKS:
(see TLimScrollBar.Change)
************************************************************************
TLimScrollBar.Store procedure
************************************************************************
DECLARATION:
procedure Store(var S: TStream);
UNIT:
GLVIEWS.PAS
DESCRIPTION:
Writes the scrollbar to disk.
PARAMETERS' DESCRIPTION:
S : the stream to which the scrollbar will be written.
************************************************************************
TMessageLine object
************************************************************************
DECLARATION:
TMessageLine = object(TView)
StatusMessage : String[79];
constructor Init (Bounds:TRect; AMessage:String);
procedure Draw; virtual;
end; {...TMessageLine }
UNIT:
GLVIEWS.PAS
95
DESCRIPTION:
Displays a string.
REMARKS:
This object is used to display messages in the status line.
************************************************************************
TMessageLine.Draw procedure
************************************************************************
DECLARATION:
procedure Draw; virtual;
UNIT:
GLVIEWS.PAS
DESCRIPTION:
Displays the message in the screen.
REMARKS:
(see TMessageLine.StatusMessage)
************************************************************************
TMessageLine.Init CONSTRUCTOR
************************************************************************
DECLARATION:
constructor Init (Bounds:TRect; AMessage:String);
UNIT:
GLVIEWS.PAS
DESCRIPTION:
Creates and initializes the TMessageLine object and displays it in the
screen.
PARAMETERS' DESCRIPTION:
Bounds : the area where the TMessageLine object will be displayed
AMessage : the message that will be displayed
************************************************************************
TMessageLine.StatusMessage field
************************************************************************
DECLARATION:
StatusMessage : String[79];
96
UNIT:
GLVIEWS.PAS
DESCRIPTION:
The message that will be displayed inside the object's bounds.
************************************************************************
ToggleClipBoardOff procedure
************************************************************************
DECLARATION:
procedure ToggleClipBoardOff;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Resets the clipboard.
REMARKS:
(see Clipboard, ToggleClipBoardOn)
************************************************************************
ToggleClipBoardOn procedure
************************************************************************
DECLARATION:
procedure ToggleClipBoardOn(SpreadSheet: PSpreadSheet; Block:
PBlock; ABlockOn: Boolean; Op: BlockOperation);
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Sets the Clipboard fields with the information necessary for a copy or
move operation.
PARAMETERS' DESCRIPTION:
SpreadSheet : the spreadsheet where the cells to be copied or
moved are stored
Block : the block of cells to be copied or moved
ABlockOn : indicates if a block of cells or only a single cell is
being copied or moved
Op : the operation (copy or move) requested
97
REMARKS:
(see Clipboard, ToggleClipBoardOff)
************************************************************************
TOverwriteHashTable object
************************************************************************
DECLARATION:
TOverwriteHashTable = OBJECT(THashTable)
CurrCell : PCell;
CurrPos : CellPos;
EndCol : Word;
constructor Init(InitBuckets : BucketRange);
destructor Done;
function Add(SCell : PCell; var CHash: TCellHashTable;
var FHash: TFormatHashTable; var WHash: TWidthHashTable;
LastPos: CellPos; MaxCols: Word; GetColWidth: GetColWidthFunc;
FormulasDisplayed, ChangeYes: Boolean) : Boolean;
procedure Delete(SPos : CellPos; var CHash: TCellHashTable;
var FHash: TFormatHashTable; var WHash: TWidthHashTable;
LastPos: CellPos; MaxCols: Word;
GetColWidth: GetColWidthFunc; FormulasDisplayed,
ChangeYes: Boolean);
function Change(SCell : PCell; Overwritten : Word) : Boolean;
function Search(SPos : CellPos) : PCell;
function HashValue : LongInt; virtual;
function Found(Item : HashItemPtr) : Boolean; virtual;
procedure CreateItem(var Item : HashItemPtr); virtual;
function ItemSize : HashItemSizeRange; virtual;
end; {...TOverwriteHashTable }
UNIT:
GLCELL.PAS
DESCRIPTION:
Keeps track of which empty cells are overwritten (in the screen) by
other cells.
REMARKS:
A cell overwrites an empty cell when the cell's contents do not fit in
the cell.
************************************************************************
TOverwriteHashTable.Add function
************************************************************************
DECLARATION:
function Add(SCell : PCell; var CHash: TCellHashTable;
var FHash: TFormatHashTable; var WHash: TWidthHashTable;
LastPos: CellPos; MaxCols: Word; GetColWidth: GetColWidthFunc;
FormulasDisplayed, ChangeYes: Boolean) : Boolean;
98
UNIT:
GLCELL.PAS
DESCRIPTION:
Adds a cell and the number of empty cells it overwrites to the overwrite
hash table.
PARAMETERS' DESCRIPTION:
SCell : The cell being added to the overwrite hash table.
CHash : A cell hash table. Used to determine the number of empty
cells the given cell; this number depends on whether or
not there is a non-empty cell near the given cell.
FHash : A format hash table. Used to determine the format of the
cell; the size of the contents of a cell depends on its
format.
WHash : A width hash table. Used to determine column widths; the
number of cells a given cell overwrites, also depends on
the width of the column it finds in its way.
LastPos : the lower right corner of the block of used cells in the
spreadsheet.
MaxCols : the maximum number of columns available in the
spreadsheet.
GetColWidth : a function used to determine the width of a column (see
GetColWidth).
FormulasDisplayed : indicates if the spreadsheet is in Display Formulas
mode, which also affects the number of empty-cells a
formula cell may overwrite.
ChangeYes : when a cell is added to the overwrite hash table,
overwrite information for cells at the left may
change; this parameter indicates if overwrite
information for those cells should be modified if
necessary.
REMARKS:
If the given cell does not overwrite any empty cells, it will not be
added to the overwrite hash table.
************************************************************************
TOverwriteHashTable.Change function
************************************************************************
DECLARATION:
function Change(SCell : PCell; Overwritten : Word) : Boolean;
99
UNIT:
GLCELL.PAS
DESCRIPTION:
Changes the overwrite information of the given cell.
PARAMETERS' DESCRIPTION:
SCell : The cell whose overwrite information is being changed.
Overwritten : the new number of empty cells overwritten by the given
cell.
REMARKS:
It returns TRUE if the information has been sucessfully changed.
************************************************************************
TOverwriteHashTable.CreateItem procedure
************************************************************************
DECLARATION:
(see TCellHashTable.CreateItem)
UNIT:
GLCELL.PAS
************************************************************************
TOverwriteHashTable.CurrCell field
************************************************************************
DECLARATION:
CurrCell : PCell;
UNIT:
GLCELL.PAS
DESCRIPTION:
Stores the cell pointer that is being added, searched for or deleted
from the overwrite hash table.
REMARKS:
You will never need to access this field directly.
************************************************************************
TOverwriteHashTable.CurrPos field
************************************************************************
DECLARATION:
CurrPos : CellPos;
100
UNIT:
GLCELL.PAS
DESCRIPTION:
Stores the location of the cell that is being added, searched for or
deleted from the overwrite hash table.
REMARKS:
You will never need to access this field directly.
************************************************************************
TOverwriteHashTable.Delete procedure
************************************************************************
DECLARATION:
procedure Delete(SPos : CellPos; var CHash: TCellHashTable;
var FHash: TFormatHashTable; var WHash: TWidthHashTable;
LastPos: CellPos; MaxCols: Word; GetColWidth: GetColWidthFunc;
FormulasDisplayed, ChangeYes: Boolean);
UNIT:
GLCELL.PAS
DESCRIPTION:
Deletes a cell and its overwrite information from the overwrite hash
table.
PARAMETERS' DESCRIPTION:
SPos : The position of the cell being deleted from the overwrite
hash table.
CHash : A cell hash table. Used to determine the number of empty
cells the given cell; this number depends on whether or
not there is a non-empty cell near the given cell. Used
when ChangeYes (see below) is TRUE.
FHash : A format hash table. Used to determine the format of the
cell; the size of the contents of a cell depends on its
format. Used when ChangeYes (see below) is TRUE.
WHash : A width hash table. Used to determine column widths; the
number of cells a given cell overwrites, also depends on
the width of the column it finds in its way. Used when
ChangeYes (see below) is TRUE.
LastPos : the lower right corner of the block of used cells in the
spreadsheet.
MaxCols : the maximum number of columns available in the
spreadsheet.
101
GetColWidth : a function used to determine the width of a column (see
GetColWidth).
FormulasDisplayed : indicates if the spreadsheet is in Display Formulas
mode, which also affects the number of empty-cells a
formula cell may overwrite.
ChangeYes : when a cell is deleted from the overwrite hash
table, overwrite information of cells at the left
may change; this parameter indicates the overwrite
information for those cells should be modified if
necessary.
REMARKS:
Nothing happens if the cell does not exist in the overwrite hash table.
(see TOverwriteHashTable.Add)
************************************************************************
TOverwriteHashTable.Done DESTRUCTOR
************************************************************************
DECLARATION:
destructor Done;
UNIT:
GLCELL.PAS
DESCRIPTION:
Performs the necessary cleanup and disposal of the overwrite hash table.
************************************************************************
TOverwriteHashTable.EndCol field
************************************************************************
DECLARATION:
EndCol : Word;
UNIT:
GLCELL.PAS
DESCRIPTION:
The number of the last column overwritten by the cell being added,
searched for or deleted from the overwrite hash table.
REMARKS:
You will never need to access this field directly.
102
************************************************************************
TOverwriteHashTable.Found function
************************************************************************
DECLARATION:
(see TCellHashTable.Found)
UNIT:
GLCELL.PAS
************************************************************************
TOverwriteHashTable.HashValue function
************************************************************************
DECLARATION:
(see TCellHashTable.HashValue)
UNIT:
GLCELL.PAS
************************************************************************
TOverwriteHashTable.Init CONSTRUCTOR
************************************************************************
DECLARATION:
constructor Init(InitBuckets : BucketRange);
UNIT:
GLCELL.PAS
DESCRIPTION:
Creates and initializes the TOverwriteHashTable object.
PARAMETERS' DESCRIPTION:
InitBuckets : the number of buckets (linked lists) the overwrite hash
table will have.
************************************************************************
TOverwriteHashTable.ItemSize function
************************************************************************
DECLARATION:
(see TCellHashTable.ItemSize)
UNIT:
GLCELL.PAS
103
************************************************************************
TOverwriteHashTable.Search function
************************************************************************
DECLARATION:
function Search(SPos : CellPos) : PCell;
UNIT:
Returns a pointer to the cell that overwrites the empty cell at the
given position.
DESCRIPTION:
GLCELL.PAS
PARAMETERS' DESCRIPTION:
SPos : Search checks if the empty cell at this position is
overwritten by another cell.
REMARKS:
If the empty cell is not overwritten by another cell, Search returns a
pointer to an empty cell.
************************************************************************
TRepeatCell object
************************************************************************
DECLARATION:
TRepeatCell = OBJECT(TCell)
RepeatChar : Char;
constructor Init(InitLoc : CellPos; InitChar : Char);
function CellType : CellTypes; virtual;
function LegalValue : Boolean; virtual;
function Name : String; virtual;
function Format(var FHash : TFormatHashTable;
FormulasDisplayed : Boolean) : FormatType; virtual;
function Width(var FHash : TFormatHashTable;
FormulasDisplayed : Boolean) : Word; virtual;
function Overwritten(var CHash : TCellHashTable;
var FHash : TFormatHashTable; var WHash : TWidthHashTable;
var LastPos : CellPos; MaxCols : Word;
GetColWidth : GetColWidthFunc; FormulasDisplayed : Boolean) :
Word; virtual;
function ShouldUpdate : Boolean; virtual;
function HasError : Boolean; virtual;
function CurrValue : Extended; virtual;
function OverwriteStart(var FHash : TFormatHashTable;
var WHash : TWidthHashTable; GetColWidth : GetColWidthFunc;
EndCol : Word; DisplayFormulas : Boolean) : Word; virtual;
procedure EditString(MaxDecPlaces : Byte; var Input : String);
virtual;
function DisplayString(FormulasDisplayed : Boolean;
MaxDecPlaces : Byte) : String; virtual;
function FormattedString(var OHash : TOverwriteHashTable;
104
var FHash : TFormatHashTable; var WHash : TWidthHashTable;
GetColWidth : GetColWidthFunc; CPos : CellPos;
FormulasDisplayed : Boolean; Start : Word; ColWidth : Byte;
var CurrencyString : CurrencyStr; var ClType: CellTypes):
String; virtual;
function CopyString : String; virtual;
constructor Load(var S : TStream);
procedure Store(var S : TStream);
end; {...TRepeatCell }
UNIT:
GLCELL.PAS
DESCRIPTION:
Stores a character that will be repeated in all the cell when displayed.
REMARKS:
A repeat cell will overwrite all empty cells to its left, until it
reaches the end of the spreadsheet or finds a non-empty cell in its way.
************************************************************************
TRepeatCell.CellType function
************************************************************************
DECLARATION:
(see TCell.CellType)
UNIT:
GLCELL.PAS
************************************************************************
TRepeatCell.CopyString function
************************************************************************
DECLARATION:
(see TCell.CopyString)
UNIT:
GLCELL.PAS
************************************************************************
TRepeatCell.CurrValue function
************************************************************************
DECLARATION:
(see TCell.CurrValue)
UNIT:
GLCELL.PAS
105
************************************************************************
TRepeatCell.DisplayString function
************************************************************************
DECLARATION:
(see TCell.DisplayString)
UNIT:
GLCELL.PAS
************************************************************************
TRepeatCell.EditString procedure
************************************************************************
DECLARATION:
(see TCell.EditString)
UNIT:
GLCELL.PAS
************************************************************************
TRepeatCell.Format function
************************************************************************
DECLARATION:
(see TCell.Format)
UNIT:
GLCELL.PAS
************************************************************************
TRepeatCell.FormattedString function
************************************************************************
DECLARATION:
(see TCell.FormattedString)
UNIT:
GLCELL.PAS
************************************************************************
TRepeatCell.HasError function
************************************************************************
DECLARATION:
(see TCell.HasError)
UNIT:
GLCELL.PAS
106
************************************************************************
TRepeatCell.Init CONSTRUCTOR
************************************************************************
DECLARATION:
constructor Init(InitLoc : CellPos; InitChar : Char);
UNIT:
GLCELL.PAS
DESCRIPTION:
Creates and initializes the TRepeatCell object.
PARAMETERS' DESCRIPTION:
InitLoc : the position of the cell in the spreadsheet.
InitChar : the character that will be repeated.
************************************************************************
TRepeatCell.LegalValue function
************************************************************************
DECLARATION:
(see TCell.LegalValue)
UNIT:
GLCELL.PAS
************************************************************************
TRepeatCell.Load CONSTRUCTOR
************************************************************************
DECLARATION:
constructor Load(var S: TStream);
UNIT:
GLCELL.PAS
DESCRIPTION:
Loads the cell's contents from disk.
PARAMETERS' DESCRIPTION:
S : the stream from which will be read the cell's contents.
************************************************************************
TRepeatCell.Name function
************************************************************************
DECLARATION:
(see TCell.Name)
107
UNIT:
GLCELL.PAS
************************************************************************
TRepeatCell.OverwriteStart function
************************************************************************
DECLARATION:
(see TCell.OverwriteStart)
UNIT:
GLCELL.PAS
************************************************************************
TRepeatCell.Overwritten function
************************************************************************
DECLARATION:
(see TCell.Overwritten)
UNIT:
GLCELL.PAS
************************************************************************
TRepeatCell.RepeatChar field
************************************************************************
DECLARATION:
RepeatChar : Char;
UNIT:
GLCELL.PAS
DESCRIPTION:
Used to store the character that will be repeated in the cell when
displayed.
************************************************************************
TRepeatCell.ShouldUpdate function
************************************************************************
DECLARATION:
(see TCell.ShouldUpdate)
UNIT:
GLCELL.PAS
108
************************************************************************
TRepeatCell.Store procedure
************************************************************************
DECLARATION:
procedure Store(var S: TStream);
UNIT:
GLCELL.PAS
DESCRIPTION:
Writes the cell's contents to disk.
PARAMETERS' DESCRIPTION:
S : the stream to which the cell's contents will be written.
************************************************************************
TRepeatCell.Width function
************************************************************************
DECLARATION:
(see TCell.Width)
UNIT:
GLCELL.PAS
************************************************************************
TScreenArea object
************************************************************************
DECLARATION:
TScreenArea = object(TObject)
UpperLeft,
LowerRight : ScreenPos;
Attrib : Byte;
constructor Init(InitX1 : ScreenColRange; InitY1 :
ScreenRowRange; InitX2 : ScreenColRange; InitY2 :
ScreenRowRange; InitAttrib : Word);
function PointInArea(X, Y: Byte): Boolean;
end; {...TScreenArea }
UNIT:
GLSUPPRT.PAS
DESCRIPTION:
Stores the position of an area in the screen and the value of the
attribute that should be used to display the the text in the area.
109
************************************************************************
TScreenArea.Attrib field
************************************************************************
DECLARATION:
Attrib : Byte;
UNIT:
GLSUPPRT.PAS
DESCRIPTION:
The attribute that should be used to display any text inside the defined
area.
************************************************************************
TScreenArea.Init CONSTRUCTOR
************************************************************************
DECLARATION:
constructor Init(InitX1 : ScreenColRange; InitY1 :
ScreenRowRange; InitX2 : ScreenColRange; InitY2 :
ScreenRowRange; InitAttrib : Word);
UNIT:
GLSUPPRT.PAS
DESCRIPTION:
Creates and initializes the TScreenAreao object.
PARAMETERS' DESCRIPTION:
InitX1 : the column of the upper left corner of the area
InitY1 : the row of the upper left corner of the area
InitX2 : the column of the lower right corner of the area
InitY2 : the row of the lower right corner of the area
InitAttrib : the attribute that should be used to display any
text inside the area
************************************************************************
TScreenArea.LowerRight field
************************************************************************
DECLARATION:
LowerRight : ScreenPos;
UNIT:
GLSUPPRT.PAS
110
DESCRIPTION:
The location of the area's lower right corner.
************************************************************************
TScreenArea.PointInArea function
************************************************************************
DECLARATION:
function PointInArea(X, Y: Byte): Boolean;
UNIT:
GLSUPPRT.PAS
DESCRIPTION:
Determines if the given point is in the area defined by the object.
PARAMETERS' DESCRIPTION:
X : column where the point is located
Y : row where the point is located
************************************************************************
TScreenArea.UpperLeft field
************************************************************************
DECLARATION:
UpperLeft : ScreenPos;
UNIT:
GLSUPPRT.PAS
DESCRIPTION:
The location of the area's upper left corner.
************************************************************************
TSheetInputLine object
************************************************************************
DECLARATION:
TSheetInputLine = OBJECT(TInputLine)
EndState : Word;
constructor Init(AMaxLen: Integer);
procedure EndModal(Command: Word); virtual;
function Execute: Word; virtual;
function GetPalette: PPalette; virtual;
procedure HandleEvent(var Event: TEvent); virtual;
procedure SetState(AState: Word; Enable: Boolean); virtual;
end; {...TSheetInputLine }
UNIT:
GLVIEWS.PAS
111
DESCRIPTION:
An input line that can be inserted in a TSpreadSheetWindow object in
modal state. It maps to the color palette of the TSpreadSheetWindow
object and handles kbEnter, kbEsc, kbUp and kbDown by ending the modal
state of the view.
************************************************************************
TSheetInputLine.EndModal procedure
************************************************************************
DECLARATION:
procedure EndModal(Command: Word); virtual;
UNIT:
GLVIEWS.PAS
DESCRIPTION:
Ends the modal state of the view, by assigning a value to the EndState
field.
PARAMETERS' DESCRIPTION:
Command : the command value that will be assigned to the EndState
field.
REMARKS:
(see TSheetInputLine.EndState)
************************************************************************
TSheetInputLine.EndState field
************************************************************************
DECLARATION:
EndState : Word;
UNIT:
GLVIEWS.PAS
DESCRIPTION:
Stores the value of the command that will be returned by the ExecView
function.
REMARKS:
As soon as this field is assigned a non-cero value, the view's modal
state will end.
You will never need to access this field directly.
(see TSheetInputLine.EndModal)
112
************************************************************************
TSheetInputLine.Execute function
************************************************************************
DECLARATION:
function Execute: Word; virtual;
UNIT:
GLVIEWS.PAS
DESCRIPTION:
"Execute is called from TGroup.ExecView whenever a view becomes modal.
If a view is to allow modal execution, it must override Execute to
provide an event loop.
The result of Execute becomes the value returned from ExecView."**
**Taken from Borland Pascal's on-Line documentation.
REMARKS:
The view's modal state ends when a value is assigned to the EndState
field.
(see TSheetInputLine.EndState, TSheetInputLine.EndModal)
************************************************************************
TSheetInputLine.GetPalette function
************************************************************************
DECLARATION:
function GetPalette: PPalette; virtual;
UNIT:
GLVIEWS.PAS
DESCRIPTION:
Returns a pointer to the object's new palette.
************************************************************************
TSheetInputLine.HandleEvent procedure
************************************************************************
DECLARATION:
procedure HandleEvent(var Event: TEvent); virtual;
UNIT:
GLVIEWS.PAS
DESCRIPTION:
Implements the object's event handling.
113
PARAMETERS' DESCRIPTION:
Event : the event that will be evaluated and, if possible,
handled by this method
REMARKS:
This method handles the kbEnter, kbUp, kbDown envents by ending the
modal state of the view with the cmOk command; kbEsc by ending the modal
state of the view with the cmCancel command.
************************************************************************
TSheetInputLine.Init CONSTRUCTOR
************************************************************************
DECLARATION:
constructor Init(AMaxLen: Integer);
UNIT:
GLVIEWS.PAS
DESCRIPTION:
Creates and initializes the TSheetInputLine object.
PARAMETERS' DESCRIPTION:
AMaxLen : the maximum length of the string that can be entered in
the input line.
************************************************************************
TSheetInputLine.SetState procedure
************************************************************************
DECLARATION:
procedure SetState(AState: Word; Enable: Boolean); virtual;
UNIT:
GLVIEWS.PAS
DESCRIPTION:
Redraws the view whenever the state of the view changes.
PARAMETERS' DESCRIPTION:
AState : the state flag that will be changed
Enable : enable (TRUE) or disable (FALSE) the given state flag.
114
************************************************************************
TSortObject object
************************************************************************
DECLARATION:
TSortObject = object(TObject)
KeySortOrder : array[1..3] of SortTypes;
KeyCols : array[1..3] of Word;
LastKey : Byte;
SourceHash: PCellHashTable;
CurrentKey, PivotFirstKey, PivotSecondKey,
PivotThirdKey: KeyValue;
SortBlock : TBlock;
constructor Init(SourceCellHash: PCellHashTable);
function CurrentKeyPosition(var ComparedRec, PivotRec:
KeyValue; SortOrder: SortTypes): KeyPosition;
function CurrentRowPosition(CurrRow: Word): KeyPosition;
procedure FillKeyRec(SearchCell: CellPos; var KeyRecord:
KeyValue);
procedure QuickSort(FirstRow, LastRow: Word);
function SetKeyArray(FirstKey, SecondKey, ThirdKey: Word;
FirstOrder, SecondOrder, ThirdOrder: SortTypes) : Boolean;
procedure SetPivot(Row: Word);
procedure Sort(ASortBlock: TBlock;
FirstKey: Word; AFirstKeySortOrder: SortTypes; SecondKey:
Word; ASecondKeySortOrder: SortTypes; ThirdKey: Word;
AThirdKeySortOrder: SortTypes);
procedure SplitSortBlock(FirstRow, LastRow : Word; var
LowFirstRow, LowLastRow, HighFirstRow, HighLastRow : Word);
procedure SwapRows(Row1, Row2: Word);
end; {...TSortObject }
UNIT:
GLSORT.PAS
DESCRIPTION:
Used to sort a list or block of cells in a cell hash table. The list is
sorted in ascending or descending order, given up to three sort keys,
using the QuickSort algorithm.
REMARKS:
A sort key is the number of a column that contains the values that will
be used to sort the rows in a list.
An instance of this object is created in the initialization section.
See StandardSortObject.
************************************************************************
TSortObject.CurrentKeyPosition function
************************************************************************
DECLARATION:
function CurrentKeyPosition(var ComparedRec, PivotRec: KeyValue;
SortOrder: SortTypes): KeyPosition;
115
UNIT:
GLSORT.PAS
DESCRIPTION:
Compares a key with the pivot and returns its position relative to the
position of the pivot.
PARAMETERS' DESCRIPTION:
ComparedRec : record containing the key value of the row to be
compared; this value can be the value of the a row's
first, second or third key, depending on the key
being used for comparision.
PivotRec : record containing the key value of the pivot row;
this value can be the value of the pivot row's
first, second or third key, depending on the key
being used for comparision.
SortOrder : the order in which the list is being ordered; it can
be the sort order of the first, second or third key,
depending on the key being used for comparision.
REMARKS:
When the comparision is made, the sort order is taken into account to
decide the position of a key relative to the pivot.
(see TSortObject.CurrentRowPosition)
************************************************************************
TSortObject.CurrentRowPosition function
************************************************************************
DECLARATION:
function CurrentRowPosition(CurrRow: Word): KeyPosition;
UNIT:
GLSORT.PAS
DESCRIPTION:
Compares the given row with the pivot row, and returns its position
relative to the position of the pivot.
PARAMETERS' DESCRIPTION:
CurrRow : the row being compared with the pivot.
REMARKS:
The rows are compared by comparing each of the key values in the row,
with the key values in the pivot row. This is done with calls to
CurrentKeyPosition using first key values, second key values -- if
116
necessary -- and third key values -- if necessary --.
************************************************************************
TSortObject.CurrKey field
************************************************************************
DECLARATION:
CurrKey : KeyValue;
UNIT:
GLSORT.PAS
DESCRIPTION:
Stores the value of the key being compared with the pivot key.
REMARKS:
This value can be either a first key, second key or third key value.
(see TSortObject.PivotFirstKey, TSortObject.PivotSecondKey,
TSortObject.PivotThirdKey)
************************************************************************
TSortObject.FillKeyRec procedure
************************************************************************
DECLARATION:
procedure FillKeyRec(SearchCell: CellPos; var KeyRecord:
RKeyValue);
UNIT:
GLSORT.PAS
DESCRIPTION:
Fills a KeyValue record with the necessary information about a cell.
PARAMETERS' DESCRIPTION:
SearchCell : the cell being compared; the information about this
cell will be put in the KeyRecord parameter.
KeyRecord : will contain the cell's information.
************************************************************************
TSortObject.Init CONSTRUCTOR
************************************************************************
DECLARATION:
constructor Init(SourceCellHash: PCellHashTable);
117
UNIT:
GLSORT.PAS
DESCRIPTION:
Creates and initializes the TSortObject object.
PARAMETERS' DESCRIPTION:
SourceCellHash : the cell hash table that contains the block of cells
to be sorted.
************************************************************************
TSortObject.KeyCols field
************************************************************************
DECLARATION:
KeyCols : array[1..3] of Word;
UNIT:
GLSORT.PAS
DESCRIPTION:
Stores the column number of each of the sort keys.
************************************************************************
TSortObject.KeySortOrder field
************************************************************************
DECLARATION:
KeySortOrder : array[1..3] of SortTypes;
UNIT:
GLSORT.PAS
DESCRIPTION:
Stores the order (ascending or descending) that will be used to sort the
list.
REMARKS:
Each of the sort keys can be sorted in ascending or descending order
independently.
(see SortTypes)
************************************************************************
TSortObject.LastKey field
************************************************************************
DECLARATION:
LastKey : Byte;
118
UNIT:
GLSORT.PAS
DESCRIPTION:
The last valid sort key (can be either 1, 2 or 3).
REMARKS:
Used to indicate to the sort algorithm the number of keys it should use
to sort the list.
************************************************************************
TSortObject.PivotFirstKey field
************************************************************************
DECLARATION:
PivotFirstKey : KeyValue;
UNIT:
GLSORT.PAS
DESCRIPTION:
Stores the value of the first key of the pivot row. The first key of
all the other rows will be compared with this value to determine their
position relative to the position of the pivot row.
************************************************************************
TSortObject.PivotSecondKey field
************************************************************************
DECLARATION:
PivotSecondKey : KeyValue;
UNIT:
GLSORT.PAS
DESCRIPTION:
Stores the value of the second key of the pivot row. When the first key
of a row is equal to the first key of the pivot row, the row's second
key will be compared with this value to determine its position relative
to the position of the pivot row.
************************************************************************
TSortObject.PivotThirdKey field
************************************************************************
DECLARATION:
PivotThirdKey : KeyValue;
119
UNIT:
GLSORT.PAS
DESCRIPTION:
Stores the value of the third key of the pivot row. When the second key
of a row is equal to the second key of the pivot row, the row's third
key will be compared with this value to determine its position relative
to the position pivot row.
************************************************************************
TSortObject.QuickSort procedure
************************************************************************
DECLARATION:
procedure QuickSort(FirstRow, LastRow: Word);
UNIT:
GLSORT.PAS
DESCRIPTION:
Sorts the cells between the firstrow and lastrow of a block of cells,
using the quicksort algorithm.
PARAMETERS' DESCRIPTION:
FirstRow : the upper row of the block of cells to be sorted.
LastRow : the bottom row of the block of cells to be sorted.
REMARKS:
The block that will be sorted by this procedure, is a sub-block of the
original block of cells. It will keep the same number of columns, but
its number of rows will vary.
(see TSortObject.Sort, TSortObject.SplitSortBlock)
************************************************************************
TSortObject.SetKeyArray function
************************************************************************
DECLARATION:
function SetKeyArray(FirstKey, SecondKey, ThirdKey: Word;
FirstOrder, SecondOrder, ThirdOrder: SortTypes) : Boolean;
UNIT:
GLSORT.PAS
DESCRIPTION:
Puts each key column's number and sort order in the KeyCols and
KeySortOrder arrays respectively, and determines the number of valid
120
sort keys (see TSortObject.LastKey)
PARAMETERS' DESCRIPTION:
FirstKey : the first key's column number.
SecondKey : the second key's column number.
ThirdKey : the third key's column number.
FirstOrder : the first key's sort order.
SecondOrder : the second key's sort order.
ThirdOrder : the third key's sort order.
************************************************************************
TSortObject.SetPivot procedure
************************************************************************
DECLARATION:
procedure SetPivot(Row: Word);
UNIT:
GLSORT.PAS
DESCRIPTION:
Fills each of the pivot keyvalue records.
PARAMETERS' DESCRIPTION:
Row : the number of the row that will be used as a pivot.
************************************************************************
TSortObject.Sort procedure
************************************************************************
DECLARATION:
procedure Sort(ASortBlock: TBlock; FirstKey: Word;
AFirstKeySortOrder: SortTypes; SecondKey: Word;
ASecondKeySortOrder: SortTypes; ThirdKey: Word;
AThirdKeySortOrder: SortTypes);
UNIT:
GLSORT.PAS
DESCRIPTION:
Sorts a list or block of cells in a cell hash table, using the QuickSort
algorithm.
PARAMETERS' DESCRIPTION:
ASortBlock : the block of cells that will be sorted.
121
FirstKey : the first key's column number.
AFirstKeySortOrder : the first key's sort order.
SecondKey : the Second key's column number.
ASecondKeySortOrder : the Second key's sort order.
ThirdKey : the Third key's column number.
AThirdKeySortOrder : the Third key's sort order.
************************************************************************
TSortObject.SortBlock field
************************************************************************
DECLARATION:
SortBlock : TBlock;
UNIT:
GLSORT.PAS
DESCRIPTION:
The block of cells that will be sorted.
************************************************************************
TSortObject.SourceCellHash field
************************************************************************
DECLARATION:
SourceHash: PCellHashTable;
UNIT:
GLSORT.PAS
DESCRIPTION:
The cell hash table that contains the list or block of cells to be
sorted.
************************************************************************
TSortObject.SplitSortBlock procedure
************************************************************************
DECLARATION:
procedure SplitSortBlock(FirstRow, LastRow : Word;
var LowFirstRow, LowLastRow, HighFirstRow, HighLastRow : Word);
UNIT:
GLSORT.PAS
DESCRIPTION:
Splits the block into two sub-blocks: the first with rows that have key
122
values smaller than the pivot's value and the second, with rows that
have key values bigger than the pivot's value; the block is not really
divided; this fuction just returns the values of the first and last
rows of each virtual sub-block.
PARAMETERS' DESCRIPTION:
FirstRow : the first row of the block of cells that will be divided.
LastRow : the last row of the block of cells that will be divided.
LowFirstRow : the first row of the first sub-block.
LowLastRow : the last row of the first sub-block.
HighFirstRow : the first row of the second sub-block.
HighLastRow : the last row of the second sub-block.
REMARKS:
(see TSortObject.QuickSort)
************************************************************************
TSortObject.SwapRows procedure
************************************************************************
DECLARATION:
procedure SwapRows(Row1, Row2 : Word);
UNIT:
GLSORT.PAS
DESCRIPTION:
Swaps the position of two rows in the spreadsheet.
PARAMETERS' DESCRIPTION:
Row1 : the number of one of the rows to be swapped.
Row2 : the number of the other row to be swapped.
************************************************************************
TSpreadSheet object
************************************************************************
DECLARATION:
TSpreadSheet = object(TScroller)
Number : Byte;
Modified : Boolean;
MaxDecimalPlaces : Byte;
DefaultColWidth : Byte;
DefaultDecimalPlaces : Byte;
DefaultCurrency : CurrencyStr;
MaxRows : Integer;
123
MaxCols : Integer;
MaxColWidth : Byte;
MaxScreenCols : Byte;
TotalRows : ScreenRowRange;
RowNumberSpace : Byte;
OldCurrPos : CellPos;
CurrPos : CellPos;
LastPos : CellPos;
ScreenBlock : PBlock;
CurrBlock : PBlock;
BlockOn : Boolean;
ColArea : TScreenArea;
RowArea : TScreenArea;
InfoArea : TScreenArea;
DataArea : TScreenArea;
DisplayArea : TScreenArea;
ContentsArea : TScreenArea;
BlankArea : TScreenArea;
NoBlankArea : Boolean;
ColStart : PColStart;
CellHash : TCellHashTable;
WidthHash : TWidthHashTable;
OverwriteHash : TOverwriteHashTable;
FormatHash : TFormatHashTable;
DisplayFormulas : Boolean;
AutoCalc : Boolean;
GoToEnd : Boolean;
KeyPressed : Boolean;
EmptyRowsAtTop : Byte;
EmptyRowsAtBottom : Byte;
SheetProtected : Boolean;
DisplayHeaders : Boolean;
UnlockedHash : TUnlockedHashTable;
ColHeadersHash : THeadersHashTable;
constructor Init(var Bounds: TRect; InitCells: LongInt;
AEmptyRowsAtTop, AEmptyRowsAtBottom: Byte; AHScrollBar,
AVScrollBar: PLimScrollBar; AInitMaxCols, AInitMaxRows:
Integer; InitDefaultColWidth, InitDefaultDecimalPlaces,
InitMaxDecimalPlaces: Byte; InitDefaultCurrency:
CurrencyStr);
function AddCell(CellType: CellTypes; Pos: CellPos; Error:
Boolean; Value: Extended; Input: String): Boolean; virtual;
function CellHashStart(TotalCells: LongInt): BucketRange;
virtual;
function CellsProtected(Block: TBlock): Boolean; virtual;
function CellToFString(P: CellPos; var AColor: Byte): String;
virtual;
procedure ChangeBounds(var Bounds: TRect); virtual;
procedure ChangeColHeaders; virtual;
procedure ChangeColWidth; virtual;
procedure CheckForDragging; virtual;
procedure ClearCurrBlock; virtual;
procedure ClearScreenArea(AreaToClear: PScreenArea); virtual;
function ColHeadersHashStart : BucketRange; virtual;
function ColumnToString(Column: Word): String; virtual;
function ColToX(Col: Integer): Byte; virtual;
function ColWidth(Col: Integer): Byte; virtual;
procedure CopyCellBlock; virtual;
124
procedure DeleteBlock(Block: TBlock; var Deleted: Boolean);
virtual;
procedure DeleteCell(Pos: CellPos; var Deleted: Boolean);
virtual;
procedure DeleteColFromHash(Block: TBlock; Columns, EndDelCol:
Word; var Deleted: Boolean); virtual;
procedure DeleteColHeaders(Block: PBlock); virtual;
procedure DeleteColumns; virtual;
procedure DeleteRowFromHash(Block: TBlock; Rows, EndDelRow:
Word; var Deleted: Boolean); virtual;
procedure DeleteRows; virtual;
procedure DisplayAllCells; virtual;
procedure DisplayBlankArea; virtual;
procedure DisplayBlock(B: TBlock); virtual;
procedure DisplayBlockDiff(B1, B2: TBlock); virtual;
procedure DisplayCell(P: CellPos); virtual;
procedure DisplayCellBlock(C1, R1, C2, R2: Word); virtual;
procedure DisplayCellData; virtual;
procedure DisplayCols; virtual;
procedure DisplayInfo; virtual;
procedure DisplayRows; virtual;
procedure DoAfterEndInput; virtual;
procedure DragCursorWithMouse(Event: TEvent); virtual;
procedure Draw; virtual;
procedure EraseCellBlock(EraseBlock: Boolean); virtual;
procedure ExtendCurrBlock(Redraw : Boolean); virtual;
procedure FindLastPos(DPos: CellPos); virtual;
procedure FindScreenColStart; virtual;
procedure FindScreenColStop; virtual;
procedure FindScreenRowStart; virtual;
procedure FindScreenRowStop; virtual;
procedure FixBlockOverWrite(Block: TBlock); virtual;
function FixOverWrite: Boolean; virtual;
procedure FormatDefault; virtual;
function FStringSituationColor(P: CellPos; var CP: PCell; var
HasError, ColorFound: Boolean): Byte; virtual;
procedure GetFormat; virtual;
function GetPalette: PPalette; virtual;
procedure GoToCell; virtual;
procedure HandleEvent(var Event: TEvent); virtual;
procedure HandleInput(FirstChar: String; Editing: Boolean);
virtual;
procedure InitCurrPos; virtual;
procedure InsertColToHash(Block: TBlock; Columns, StartInsCol:
Word; var Deleted: Boolean); virtual;
procedure InsertColumns; virtual;
procedure InsertRowToHash(Block: TBlock; Rows, StartInsRow:
Word; var Deleted: Boolean); virtual;
procedure InsertRows; virtual;
constructor Load(var S: TStream);
procedure LoadDelimited(FileName: PathStr); virtual;
procedure LoadHashTables(var S: TStream; AdjustAfter: CellPos;
RowAdjustment, ColAdjustment: Integer); virtual;
procedure LoadTablesFromTempFile(AdjustAfter: CellPos;
RowAdjustment, ColAdjustment: Integer); virtual;
procedure LocateCursorWithMouse(Event: TEvent); virtual;
procedure MoveCell(OldPos: CellPos); virtual;
procedure MoveCellBlock; virtual;
125
procedure MoveDown; virtual;
procedure MoveHome; virtual;
procedure MoveLeft; virtual;
procedure MovePgDown; virtual;
procedure MovePgLeft; virtual;
procedure MovePgRight; virtual;
procedure MovePgUp; virtual;
procedure MoveRight; virtual;
procedure MoveUp; virtual;
function OverwriteHashStart: BucketRange; virtual;
function Parser: PParserObject; virtual;
procedure PasteBlock(DestBlock: TBlock; Formulas: Word);
virtual;
procedure PasteCellBlock; virtual;
procedure Print; virtual;
procedure Recalc(Display: Boolean); virtual;
function RowToY(Row: Integer): Byte; virtual;
function SameCellPos(P1, P2 : CellPos) : Boolean; virtual;
procedure ScrollDraw; virtual;
function SelectColumn(var Event: TEvent): Boolean; virtual;
procedure SetAreas(ScrollArea: TRect); virtual;
procedure SetBlankArea; virtual;
procedure SetChanged(IsChanged: Boolean); virtual;
procedure SetLimit(X, Y: Integer); virtual;
procedure SetLocked; virtual;
procedure SetNameWithMouse(var Event: TEvent); virtual;
procedure SetNumber(ANumber: Byte); virtual;
procedure SetProtection(Enable, Display: Boolean); virtual;
procedure SetScreenColStart(NewCol: Integer); virtual;
procedure SetScreenColStop(NewCol: Integer); virtual;
procedure SetScreenRowStart(NewRow: Integer); virtual;
procedure SetScreenRowStop(NewRow: Integer); virtual;
procedure SetState(AState: Word; Enable: Boolean); virtual;
procedure SetUnlocked; virtual;
procedure SortData; virtual;
function SortObject : PSortObject; virtual;
procedure Store(var S: TStream);
procedure StoreHashTables(var S: TStream); virtual;
procedure StoreTablesToTempFile; virtual;
procedure ToggleAutoCalc; virtual;
procedure ToggleBlockOn; virtual;
procedure ToggleDisplayHeaders; virtual;
procedure ToggleEnd; virtual;
procedure ToggleFormulaDisplay; virtual;
function TrackCursor: Boolean; virtual;
procedure UpdateScreenBlockDisplay; virtual;
function WidthHashStart:BucketRange; virtual;
function XToCol(X: Byte): Integer; virtual;
function YToRow(Y: Byte): Integer; virtual;
procedure DoneHashTables; virtual;
destructor Done; virtual;
end; {...TSpreadSheet }
UNIT:
GLTSHEET.PAS
126
DESCRIPTION:
This object implements a simple spreadsheet that you can use in your
applications. It is the main object in OOGrid Library(TM) v1.0.
************************************************************************
TSpreadSheet.AddCell function
************************************************************************
DECLARATION:
function AddCell(CellType: CellTypes; Pos: CellPos; Error:
Boolean; Value: Extended; Input: String): Boolean; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Adds a cell to the cell hash table.
PARAMETERS' DESCRIPTION:
CellType : the type of the cell being added
Pos : the position of the cell in the spreadsheet
Error : indicates if the contents of the cell have a numeric
error
Value : the numeric value of the cell
Input : the string contents of the cell
REMARKS:
If the cell was succesfully added to the cell hash table, then Add
returns TRUE; FALSE otherwise.
************************************************************************
TSpreadSheet.AutoCalc field
************************************************************************
DECLARATION:
AutoCalc : Boolean;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Indicates if the values of the cells in the spreadsheet should be
recalculated whenever a cell is modified (i.e. Indicates if the
spreadsheet is in AutoCalc mode).
127
REMARKS:
(see TSpreadSheet.ToggleAutoCalc)
************************************************************************
TSpreadSheet.BlankArea field
************************************************************************
DECLARATION:
BlankArea : TScreenArea;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Area of the window that will be left blank when displaying the
spreadsheet.
REMARKS:
A blank area is formed when a column won't fit in the window and will
therefore not be displayed, leaving an empty (blank) area in the window.
(see TSpreadSheet.DisplayBlankArea)
************************************************************************
TSpreadSheet.BlockOn field
************************************************************************
DECLARATION:
BlockOn : Boolean;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Indicates if a block of cells is currently selected (block mode is on).
REMARKS:
(see TSpreadSheet.ToggleBlockOn)
************************************************************************
TSpreadSheet.CellHash field
************************************************************************
DECLARATION:
CellHash : TCellHashTable;
128
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Cell hash table that will be used to store the data in the spreadsheet.
************************************************************************
TSpreadSheet.CellHashStart function
************************************************************************
DECLARATION:
function CellHashStart(TotalCells: LongInt): BucketRange;
virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Returns the initial number of buckets the cell hash table will have.
PARAMETERS' DESCRIPTION:
TotalCells : the number of cells that cell hash table will have
************************************************************************
TSpreadSheet.CellsProtected function
************************************************************************
DECLARATION:
function CellsProtected(Block: TBlock): Boolean; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Determines if any cell in the given block cannot be modified.
PARAMETERS' DESCRIPTION:
Block : the block to be checked for cells that cannot be modified
************************************************************************
TSpreadSheet.CellToFString function
************************************************************************
DECLARATION:
function CellToFString(P: CellPos; var AColor: Byte): String;
virtual;
UNIT:
GLTSHEET.PAS
129
DESCRIPTION:
Returns the formatted contents of a cell to be displayed in the screen.
PARAMETERS' DESCRIPTION:
P : the position of the cell that will be displayed
AColor : the color that the cell's contents should be displayed
with
************************************************************************
TSpreadSheet.ChangeBounds procedure
************************************************************************
DECLARATION:
procedure ChangeBounds(var Bounds: TRect); virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Changes the size of the spreadsheet and resets the limits of the
scroller.
PARAMETERS' DESCRIPTION:
Bounds : the new area where the spreadsheet will be displayed
************************************************************************
TSpreadSheet.ChangeColHeaders procedure
************************************************************************
DECLARATION:
procedure ChangeColHeaders; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Assigns a custom header to a column or group of column.
REMARKS:
This procedure will present the user with a dialog prompting for the new
header; if the user enters a valid custom header, it is added to the
headers hash table. If a custom assigned header for the selected column
or group of columns already existed, it will be replaced by the new one.
130
************************************************************************
TSpreadSheet.ChangeColWidth procedure
************************************************************************
DECLARATION:
procedure ChangeColWidth; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Changes the width of a column or group of columns.
REMARKS:
This procedure will present the user with a dialog prompting for a new
width; if the user enters a valid width, it is added to the width hash
table. If a non-default width already existed for the selected column
or group of columns, it will be replaced. If the user enters the
default width for the column, the column will be erased from the width
hash table.
************************************************************************
TSpreadSheet.CheckForDragging procedure
************************************************************************
DECLARATION:
procedure CheckForDragging; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Checks if the cursor is being dragged (with the mouse or by holding the
SHIFT key and using the cursor keys), and -- if necessary -- extends (or
creates) the block of selected cells, until the cursor is not dragged
anymore.
************************************************************************
TSpreadSheet.ClearCurrBlock procedure
************************************************************************
DECLARATION:
procedure ClearCurrBlock; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Turns off the block mode and redisplays the affected cells.
131
************************************************************************
TSpreadSheet.ClearScreenArea procedure
************************************************************************
DECLARATION:
procedure ClearScreenArea(AreaToClear: PScreenArea); virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Clears an area of the screen (or window).
PARAMETERS' DESCRIPTION:
AreaToClear : area the will be cleared
************************************************************************
TSpreadSheet.ColArea field
************************************************************************
DECLARATION:
ColArea : TScreenArea;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Area of the window where column headers will be displayed.
REMARKS:
(see TSpreadSheet.DisplayCols)
************************************************************************
TSpreadSheet.ColHeadersHash field
************************************************************************
DECLARATION:
ColHeadersHash : THeadersHashTable;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Headers hash table that will store custom assigned headers of the
columns in the spreadsheet.
132
************************************************************************
TSpreadSheet.ColHeadersHashStart function
************************************************************************
DECLARATION:
function ColHeadersHashStart : BucketRange; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Returns the number of buckets the headers hash table will have.
************************************************************************
TSpreadSheet.ColStart field
************************************************************************
DECLARATION:
ColStart : PColStart;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Pointer to the ColStartArray that will store the screen columns where
the columns of the spreadsheet will be displayed.
REMARKS:
(see ColStartArray)
************************************************************************
TSpreadSheet.ColToX function
************************************************************************
DECLARATION:
function ColToX(Col: Integer): Byte; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Returns the position in the window where a given spreadsheet column will
be displayed.
PARAMETERS' DESCRIPTION:
Col : the number of the column that will be display
133
REMARKS:
The Col parameter should be the number of a column that is inside the
screen block being displayed.
************************************************************************
TSpreadSheet.ColumnToString function
************************************************************************
DECLARATION:
function ColumnToString(Column: Word): String; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Converts a given column number to a column letter.
PARAMETERS' DESCRIPTION:
Column : the column number to be converted
************************************************************************
TSpreadSheet.ColWidth function
************************************************************************
DECLARATION:
function ColWidth(Col: Integer): Byte; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Returns the width of a given column.
PARAMETERS' DESCRIPTION:
Col : the number of the column whose width will be returned by the
function
************************************************************************
TSpreadSheet.ContentsArea field
************************************************************************
DECLARATION:
ContentsArea : TScreenArea;
UNIT:
GLTSHEET.PAS
134
DESCRIPTION:
Area of the window where the contents of the highlighted cell will be
displayed.
REMARKS:
(see TSpreadSheet.DisplayCellData)
************************************************************************
TSpreadSheet.CopyCellBlock procedure
************************************************************************
DECLARATION:
procedure CopyCellBlock; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Activates the clipboard and sets it to indicate a copy operation and the
block to be copied.
REMARKS:
The block is not actually copied; the block will be copied when
TSpreadSheet's PasteCellBlock method is called.
************************************************************************
TSpreadSheet.CurrBlock field
************************************************************************
DECLARATION:
CurrBlock : PBlock;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
The currently selected block of cells (if any).
************************************************************************
TSpreadSheet.CurrPos field
************************************************************************
DECLARATION:
CurrPos : CellPos;
UNIT:
GLTSHEET.PAS
135
DESCRIPTION:
The position of the cursor in the spreadsheet.
************************************************************************
TSpreadSheet.DataArea field
************************************************************************
DECLARATION:
DataArea : TScreenArea;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Area of the window where information about the highlighted cell will be
displayed.
REMARKS:
(see TSpreadSheet.DisplayCellData)
************************************************************************
TSpreadSheet.DefaultColWidth field
************************************************************************
DECLARATION:
DefaultColWidth : Byte;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Default width of the columns in the spreadsheet.
************************************************************************
TSpreadSheet.DefaultCurrency field
************************************************************************
DECLARATION:
DefaultCurrency : CurrencyStr;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
This is the currency string that will be used by default when adding a
currency character to numbers.
136
************************************************************************
TSpreadSheet.DefaultDecimalPlaces field
************************************************************************
DECLARATION:
DefaultDecimalPlaces : Byte;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Default number of decimal places a number will be displayed with.
************************************************************************
TSpreadSheet.DeleteBlock procedure
************************************************************************
DECLARATION:
procedure DeleteBlock(Block: TBlock; var Deleted: Boolean);
virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Deletes a block of cells from the spreadsheet.
PARAMETERS' DESCRIPTION:
Block : the block to be deleted
Deleted : after a call to DeleteBlock, this parameter will contain
a boolean value indicating if the cells were successfully
deleted
REMARKS:
If Deleted contains a FALSE value, it means that either there was an
error during the delete operation or the cells did not exist.
(see TSpreadSheet.DeleteCell)
************************************************************************
TSpreadSheet.DeleteCell procedure
************************************************************************
DECLARATION:
procedure DeleteCell(Pos: CellPos; var Deleted: Boolean);
virtual;
UNIT:
GLTSHEET.PAS
137
DESCRIPTION:
Deletes a cell from the spreadsheet.
PARAMETERS' DESCRIPTION:
Pos : the position of the cell to be deleted
Deleted : after a call to DeleteCell, this parameter will contain a
boolean value indicating if the cell was sucessfully
deleted
REMARKS:
If Deleted contains a FALSE value, it means that either there was an
error during the delete operation or the cell did not exist.
************************************************************************
TSpreadSheet.DeleteColFromHash procedure
************************************************************************
DECLARATION:
procedure DeleteColFromHash(Block: TBlock; Columns, EndDelCol:
Word; var Deleted: Boolean); virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Deletes a column or block of columns from the spreadsheet's hash tables.
PARAMETERS' DESCRIPTION:
Block : the block of cells that will be deleted
Columns : the number of columns that will be deleted
EndDelCol : the number of the right most column in the block of
columns that will deleted
Deleted : after a call to DeleteColFromHash, this parameter will
contain a boolean value indicating if the cells where
sucessfully deleted (see TSpreadSheet.DeleteBlock)
REMARKS:
(see TSpreadSheet.DeleteColumns)
************************************************************************
TSpreadSheet.DeleteColHeaders procedure
************************************************************************
DECLARATION:
procedure DeleteColHeaders(Block: PBlock); virtual;
138
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Deletes the custom assigned headers of a block of columns from the
headers hash table.
PARAMETERS' DESCRIPTION:
Block : the block of columns whose headers will be delete
************************************************************************
TSpreadSheet.DeleteColumns procedure
************************************************************************
DECLARATION:
procedure DeleteColumns; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Deletes a column or block of columns from the spreadsheet.
REMARKS:
(see TSpreadSheet.DeleteColFromHash)
************************************************************************
TSpreadSheet.DeleteRowFromHash procedure
************************************************************************
DECLARATION:
procedure DeleteRowFromHash(Block: TBlock; Rows, EndDelRow:
Word; var Deleted: Boolean); virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Deletes a row or block of rows from the spreadsheet's hash tables.
PARAMETERS' DESCRIPTION:
Block : the block of cells that will be deleted
Rows : the number of rows that will be deleted
EndDelRow : the number of the last row in the block of rows that will
be deleted
139
Deleted : after a call to DeleteRowFromHash, this parameter will
contain a boolean value indicating if the cells where
sucessfully deleted (see TSpreadSheet.DeleteBlock)
REMARKS:
(see TSpreadSheet.DeleteRows)
************************************************************************
TSpreadSheet.DeleteRows procedure
************************************************************************
DECLARATION:
procedure DeleteRows; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Deletes a row or block of columns from the spreadsheet.
REMARKS:
(see TSpreadSheet.DeleteRowFromHash)
************************************************************************
TSpreadSheet.DisplayAllCells procedure
************************************************************************
DECLARATION:
procedure DisplayAllCells; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Displays all the cells in the current screen block.
REMARKS:
(see TSpreadSheet.ScreenBlock)
************************************************************************
TSpreadSheet.DisplayArea field
************************************************************************
DECLARATION:
DisplayArea : TScreenArea;
140
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Area of the window where the data in the spreadsheet will be displayed.
REMARKS:
(see TSpreadSheet.DisplayAllCells)
************************************************************************
TSpreadSheet.DisplayBlankArea procedure
************************************************************************
DECLARATION:
procedure DisplayBlankArea; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Clears the empty area in the spreadsheet.
REMARKS:
(see TSpreadSheet.ClearScreenArea, TSpreadSheet.BlankArea)
************************************************************************
TSpreadSheet.DisplayBlock procedure
************************************************************************
DECLARATION:
procedure DisplayBlock(B: TBlock); virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Displays a block of cells.
PARAMETERS' DESCRIPTION:
Block : the block of cells that should be displayed
REMARKS:
Only cells in the current screen block will be displayed.
(see TSpreadSheet.ScreenBlock, TSpreadSheet.DisplayCellBlock)
141
************************************************************************
TSpreadSheet.DisplayBlockDiff procedure
************************************************************************
DECLARATION:
procedure DisplayBlockDiff(B1, B2: TBlock); virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Displays the cells present in one block, not present in the another
block.
PARAMETERS' DESCRIPTION:
B1 : the reference block
B2 : cells in this block not present in the reference block (B1)
will be displayed.
************************************************************************
TSpreadSheet.DisplayCell procedure
************************************************************************
DECLARATION:
procedure DisplayCell(P: CellPos); virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Displays a single cell.
PARAMETERS' DESCRIPTION:
P : the position of the cell to be displayed
REMARKS:
The cell must be inside the current screen block.
(see TSpreadSheet.ScreenBlock)
************************************************************************
TSpreadSheet.DisplayCellBlock procedure
************************************************************************
DECLARATION:
procedure DisplayCellBlock(C1, R1, C2, R2: Word); virtual;
142
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Displays a block of cells.
PARAMETERS' DESCRIPTION:
C1 : the column number of the upper left corner of the block of
cells to be displayed
R1 : the row number of the upper left corner of the block of cells
to be displayed
C2 : the column number of the lower right corner of the block of
cells to be displayed
R2 : the row number of the lower right corner of the block of cells
to be displayed
REMARKS:
Only cells in the current screen block will be displayed.
(see TSpreadSheet.ScreenBlock)
************************************************************************
TSpreadSheet.DisplayCellData procedure
************************************************************************
DECLARATION:
procedure DisplayCellData; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Displays the highlighted cell's information and contents.
************************************************************************
TSpreadSheet.DisplayCols procedure
************************************************************************
DECLARATION:
procedure DisplayCols; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Displays the headers of the columns in the current screen block.
143
REMARKS:
(see TSpreadSheet.ScreenBlock)
************************************************************************
TSpreadSheet.DisplayFormulas field
************************************************************************
DECLARATION:
DisplayFormulas : Boolean;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Indicates if formulas (not their results) should be displayed in the
spreadsheet (i.e. Indicates if the spreadsheet is in Display Formulas
mode).
REMARKS:
(see TSpreadSheet.ToggleDisplayFormulas)
************************************************************************
TSpreadSheet.DisplayHeaders field
************************************************************************
DECLARATION:
DisplayHeaders : Boolean;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Indicates if custom assigned headers should be displayed (i.e. Indicates
if the spreadsheet is in Display Headers mode)
REMARKS:
(see ToggleDisplayHeaders)
************************************************************************
TSpreadSheet.DisplayInfo procedure
************************************************************************
DECLARATION:
procedure DisplayInfo; virtual;
UNIT:
GLTSHEET.PAS
144
DESCRIPTION:
Displays the spreadsheet's information characters in the info area.
************************************************************************
TSpreadSheet.DisplayRows procedure
************************************************************************
DECLARATION:
procedure DisplayRows; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Displays the row numbers of the rows in the current screen block.
REMARKS:
(see TSpreadSheet.ScreenBlock)
************************************************************************
TSpreadSheet.DoAfterEndInput procedure
************************************************************************
DECLARATION:
procedure DoAfterEndInput; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
This procedure is always called after a cell is added or modified.
REMARKS:
This is a very important procedure when creating data entry screens. By
overriding this method, you can control what happens after a cell is
added or modified. For example, you can add additional data to the
spreadsheet when a particular cell is added; or you can decide when to
move the cursor left and when to move the cursor to the next line,
depending on the position of the cell that was added or modified (stored
in the CurrPos field).
(see TSpreadSheet.HandleInput)
************************************************************************
TSpreadSheet.Done DESTRUCTOR
************************************************************************
DECLARATION:
destructor Done; virtual;
145
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Performs the necessary clean up and disposal of the spreadsheet.
************************************************************************
TSpreadSheet.DoneHashTables procedure
************************************************************************
DECLARATION:
procedure DoneHashTables; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Performs the necessary clean up and disposal of the spreadsheet's hash
tables.
************************************************************************
TSpreadSheet.DragCursorWithMouse procedure
************************************************************************
DECLARATION:
procedure DragCursorWithMouse(Event: TEvent); virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Sets block mode on and extends the block to wherever the mouse is
pointing.
PARAMETERS' DESCRIPTION:
Event : the mouse event triggered by the movement of the mouse.
REMARKS:
(see CheckForDragging)
************************************************************************
TSpreadSheet.Draw procedure
************************************************************************
DECLARATION:
procedure Draw; virtual;
146
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Sets the spreadsheet's areas and draws all of the spreadsheet's
components.
************************************************************************
TSpreadSheet.EmptyRowsAtBottom field
************************************************************************
DECLARATION:
EmptyRowsAtBottom : Byte;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Number of rows that will be left empty at the bottom of the window.
REMARKS:
Useful if you want to display additional information in the window.
(see TSpreadSheet.EmptyRowsAtTop)
************************************************************************
TSpreadSheet.EmptyRowsAtTop field
************************************************************************
DECLARATION:
EmptyRowsAtTop : Byte;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Number of rows that will be left empty at the top of the window.
REMARKS:
Useful if you want to display additional information in the window.
(see TSpreadSheet.EmptyRowsAtBottom)
147
************************************************************************
TSpreadSheet.EraseCellBlock procedure
************************************************************************
DECLARATION:
procedure EraseCellBlock(EraseBlock: Boolean); virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Deletes a cell or block of cells; verifies that none of the cells being
deleted is protected before actually deleting the cells.
PARAMETERS' DESCRIPTION:
EraseBlock : indicates whether a single cell or a block of cells
is being deleted
************************************************************************
TSpreadSheet.ExtendCurrBlock procedure
************************************************************************
DECLARATION:
procedure ExtendCurrBlock(Redraw : Boolean); virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
If block mode is on, then the current block is extended to where the
cursor is located.
PARAMETERS' DESCRIPTION:
Redraw : indicates if affected cells should be redrawn.
************************************************************************
TSpreadSheet.FindLastPos procedure
************************************************************************
DECLARATION:
procedure FindLastPos(DPos: CellPos); virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Determines the lower right corner of the block of cells actually used in
the spreadsheet.
148
PARAMETERS' DESCRIPTION:
DPos : position used as a reference to find the position being
searched.
REMARKS:
The reference position is always the position of the cell (or block of
cells) that was most recently modified.
************************************************************************
TSpreadSheet.FindScreenColStart procedure
************************************************************************
DECLARATION:
procedure FindScreenColStart; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Finds the starting column of the screen block when the ending column is
known.
REMARKS:
The ending column used is the last column of the current screen block.
(see TSpreadSheet.FindScreenColStop, TSpreadSheet.SetScreenColStart,
TSpreadSheet.SetScreenColStop)
************************************************************************
TSpreadSheet.FindScreenColStop procedure
************************************************************************
DECLARATION:
procedure FindScreenColStop; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Finds the ending column of the screen block when the starting column is
known.
REMARKS:
The starting column used is the first column of the current screen
block.
(see TSpreadSheet.FindScreenColStart, TSpreadSheet.SetScreenColStart,
TSpreadSheet.SetScreenColStop)
149
************************************************************************
TSpreadSheet.FindScreenRowStop procedure
************************************************************************
DECLARATION:
procedure FindScreenRowStop; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Finds the ending row of the screen block when the starting row is known.
REMARKS:
The starting row used is the first row of the current screen block.
(see TSpreadSheet.FindScreenRowStart, TSpreadSheet.SetScreenRowStart,
TSpreadSheet.SetScreenRowStop)
************************************************************************
TSpreadSheet.FindScreenRowStart procedure
************************************************************************
DECLARATION:
procedure FindScreenRowStart; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Finds the starting row of the screen block when the ending row is known.
REMARKS:
The ending row used is the last row of the current screen block.
(see TSpreadSheet.FindScreenRowStop, TSpreadSheet.SetScreenRowStart,
TSpreadSheet.SetScreenRowStop)
************************************************************************
TSpreadSheet.FixBlockOverWrite procedure
************************************************************************
DECLARATION:
procedure FixBlockOverWrite(Block: TBlock); virtual;
UNIT:
GLTSHEET.PAS
150
DESCRIPTION:
Updates the overwrite information for the given block of cells.
PARAMETERS' DESCRIPTION:
Block : the block of cells whose overwrite information will be
updated
REMARKS:
IMPORTANT : No memory checking is done since it is assumed that no cells
were added to the block of cells being updated; therefore, if new
information must be added and there is not enought memory to do it, you
will start receiving 'Out of memory' messages for each piece of
overwrite information that cannot be added to the overwrite hash table.
************************************************************************
TSpreadSheet.FixOverWrite function
************************************************************************
DECLARATION:
function FixOverWrite: Boolean; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Updates the overwrite information for each cell in the spreadsheet.
REMARKS:
If the operation was completed sucessfully, this function will return
TRUE; it will return FALSE otherwise.
************************************************************************
TSpreadSheet.FormatDefault procedure
************************************************************************
DECLARATION:
procedure FormatDefault; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Erases all format information for a cell or block of cells from the
format hash table.
151
************************************************************************
TSpreadSheet.FormulaHash field
************************************************************************
DECLARATION:
FormatHash : TFormatHashTable;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Format hash table that will be used to store the formats for blocks of
cells in the spreadsheet.
************************************************************************
TSpreadSheet.FStringSituationColor function
************************************************************************
DECLARATION:
function FStringSituationColor(P: CellPos; var CP: PCell; var
HasError, ColorFound: Boolean): Byte; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Returns a situation especific color for the string to be displayed in
the spreadsheet (e.g. highlighted cell color, cell in block color,
etc.).
PARAMETERS' DESCRIPTION:
P : the position of the cell whose contents are being displayed in
the screen.
CP : after a call to this function, this parameter will contain a
pointer to the cell in the given position
HasError : after a call to this function, this parameter will
indicate if the cell's contents have a numeric error
ColorFound : after a call to this function, this parameter will
indicate if a situation especific color was found
for the cell at the given position.
************************************************************************
TSpreadSheet.GetFormat procedure
************************************************************************
DECLARATION:
procedure GetFormat; virtual;
152
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Prompts the user for a new format and if a valid format is returned, it
will be added to the format hash table.
************************************************************************
TSpreadSheet.GetPalette function
************************************************************************
DECLARATION:
function GetPalette: PPalette; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Returns a pointer to the object's new palette.
REMARKS:
(see CSpreadSheet)
************************************************************************
TSpreadSheet.GoToCell procedure
************************************************************************
DECLARATION:
procedure GoToCell; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Prompts the user for a destination position and if a valid cell address
is returned, the cursor is moved to that address.
************************************************************************
TSpreadSheet.GoToEnd field
************************************************************************
DECLARATION:
GoToEnd : Boolean;
UNIT:
GLTSHEET.PAS
153
DESCRIPTION:
Indicates if the END key was pressed.
REMARKS:
When GoToEnd is true, pressing one of the cursor keys will move the
cursor to the end of the spreadsheet in the direction of the cursor key
pressed.
(see TSpreadSheet.ToggleEnd)
************************************************************************
TSpreadSheet.HandleEvent procedure
************************************************************************
DECLARATION:
procedure HandleEvent(var Event: TEvent); virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Implements the object's event handling.
PARAMETERS' DESCRIPTION:
Event : the event that will be evaluated and, if possible,
handled by this method
REMARKS:
This method handles keyboard events (cursor keys, ESC, END and ENTER) by
moving the spreadsheet's cursor and -- when the clipboard is active --
by pasting blocks of cells, mouse double clicks by changing a column's
header, mouse clicks and dragging by moving the cursor to the clicked
position (and extending the block of selected cells to that position
when the cursor is being dragged) and several command events (see
cmXXXX).
************************************************************************
TSpreadSheet.HandleInput procedure
************************************************************************
DECLARATION:
procedure HandleInput(FirstChar: String; Editing: Boolean);
virtual;
UNIT:
GLTSHEET.PAS
154
DESCRIPTION:
Gets data from the user, validates it and creates and adds the
corresponding cell to store the data.
PARAMETERS' DESCRIPTION:
FirstChar : this parameter should contain the first typed character
when creating a new cell, or the cell's previous contents
when editing the cell.
Editing : indicates if the cell's contents are being edited and not
created from scratch.
REMARKS:
(see TSpreadSheet.DoAfterEndInput)
************************************************************************
TSpreadSheet.InfoArea field
************************************************************************
DECLARATION:
InfoArea : TScreenArea;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Area of the window where information about the spreadsheet (number and
modes) will be displayed.
REMARKS:
(see TSpreadSheet.DisplayInfo)
************************************************************************
TSpreadSheet.Init CONSTRUCTOR
************************************************************************
DECLARATION:
constructor Init(var Bounds: TRect; InitCells: LongInt;
AEmptyRowsAtTop, AEmptyRowsAtBottom: Byte; AHScrollBar,
AVScrollBar: PLimScrollBar; AInitMaxCols, AInitMaxRows:
Integer; InitDefaultColWidth, InitDefaultDecimalPlaces,
InitMaxDecimalPlaces: Byte; InitDefaultCurrency:
CurrencyStr);
UNIT:
GLTSHEET.PAS
155
DESCRIPTION:
Creates and initializes the TSpreadSheet object.
PARAMETERS' DESCRIPTION:
Bounds : the area where the spreadsheet will be displayed (should
be the all area of the window; the area where the
spreadsheet is displayed can be reduced using the
AEmptyRowsAtTop and AEmptyRowsAtBottom parameters)
InitCells : the number of used cells the spreadsheet has (might be
non-cero when loading from disk)
AEmptyRowsAtTop : the number of rows that will be left empty at
the top of the window where the spreadsheet
will be displayed
AEmptyRowsAtBottom : the number of rows that will be left empty at
the bottom of the window where the spreadsheet
will be displayed
AHScrollBar : pointer to the horizontal limited scrolling scroll
bar that will be used by the spreadsheet (must be
non-nil)
AVScrollBar : pointer to the vertical limited scrolling scroll bar
that will be used by the spreadsheet (must be non-
nil)
AInitMaxCols : the (maximum) number of columns the spreadsheet will
have
AInitMaxRows : the (maximum) number of rows the spreadsheet will
have
InitDefaultColWidth : the default width of the columns in the
spreadsheet
InitDefaultDecimalPlaces : the default number of decimal places
numbers should be displayed with
InitMaxDecimalPlaces : the maximum number of decimal places a
number can be displayed with
InitDefaultCurrency : the default currency string that should be used
when formatting numbers
************************************************************************
TSpreadSheet.InitCurrPos procedure
************************************************************************
DECLARATION:
procedure InitCurrPos; virtual;
UNIT:
GLTSHEET.PAS
156
DESCRIPTION:
Sets the position of the cursor to the first position in the spreadsheet
(column 1 : row 1).
************************************************************************
TSpreadSheet.InsertColumns procedure
************************************************************************
DECLARATION:
procedure InsertColumns; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Inserts one or more columns in the spreadsheet.
REMARKS:
(see TSpreadSheet.InsertColToHash)
************************************************************************
TSpreadSheet.InsertRows procedure
************************************************************************
DECLARATION:
procedure InsertRows; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Inserts one or more rows in the spreadsheet.
REMARKS:
(see TSpreadSheet.InsertRowToHash)
************************************************************************
TSpreadSheet.InsertRowToHash procedure
************************************************************************
DECLARATION:
procedure InsertRowToHash(Block: TBlock; Rows, StartInsRow:
Word; var Deleted: Boolean); virtual;
UNIT:
GLTSHEET.PAS
157
DESCRIPTION:
Insert a row or block of rows in the spreadsheet's hash tables.
PARAMETERS' DESCRIPTION:
Block : the block of cells that will be deleted (if any); this
block will always be the block of cells that are located
in the last rows of the spreadsheet and that get pushed
out when one or more rows are inserted.
Rows : the number of rows that will be inserted
StartInsRow : the row number where the new rows will be inserted
Deleted : after a call to this procedure, this parameter will
contain a boolean value indicating if any cells were
deleted from the spreadsheet.
REMARKS:
(see TSpreadSheet.InsertRows)
************************************************************************
TSpreadSheet.KeyPressed field
************************************************************************
DECLARATION:
KeyPressed : Boolean;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Indicates if a key was pressed.
REMARKS:
This field is used by TSpreadSheet's ScrollDraw method to determine when
the mouse caused the scrollbar to change and when the movement of the
cursor (using the cursor keys) caused the scrollbar to change.
************************************************************************
TSpreadSheet.LastPos field
************************************************************************
DECLARATION:
LastPos : CellPos;
UNIT:
GLTSHEET.PAS
158
DESCRIPTION:
The lower right corner of the block of cells actually used in the
spreadsheet.
************************************************************************
TSpreadSheet.Load CONSTRUCTOR
************************************************************************
DECLARATION:
constructor Load(var S: TStream);
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Loads the spreadsheet from disk.
PARAMETERS' DESCRIPTION:
S : the stream from which the spreadsheet will be loaded
************************************************************************
TSpreadSheet.LoadDelimited procedure
************************************************************************
DECLARATION:
procedure LoadDelimited(FileName: PathStr); virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
This method imports a comma delimited file of a certain format and is
intended only as an example of how to import comma delimited files.
This method must be overridden if you wish to import delimited files of
different formats.
PARAMETERS' DESCRIPTION:
FileName : the filename of the comma delimited file that will be
imported.
************************************************************************
TSpreadSheet.LoadHashTables procedure
************************************************************************
DECLARATION:
procedure LoadHashTables(var S: TStream; AdjustAfter: CellPos;
RowAdjustment, ColAdjustment: Integer); virtual;
UNIT:
GLTSHEET.PAS
159
DESCRIPTION:
Loads the spreadsheet's hash tables from a stream.
PARAMETERS' DESCRIPTION:
S : the stream from which the hash tables will be loaded
AdjustAfter : The location of all cells in the cell hash table
being loaded, below and to the left of this
position, will be increased by RowAdjustment and
ColAdjustment respectively.
RowAdjustment : the row location of all cells below AdjustAfter will
be increased by this amount.
ColAdjustment : the column location of all cells to the left of
AdjustAfter will be increased by this amount.
REMARKS:
The AdjustAfter, RowAdjustment and ColAdjustment parameters are used to
relocate the cells in the cell hash table, when adding or deleting rows
or columns.
(see TSpreadSheet.StoreTablesToTempFile, TSpreadSheet.InsertColumns,
TSpreadSheet.InsertRows, TSpreadSheet.DeleteColumns,
TSpreadSheet.DeleteRows)
************************************************************************
TSpreadSheet.LoadTablesFromTempFile procedure
************************************************************************
DECLARATION:
procedure LoadTablesFromTempFile(AdjustAfter: CellPos;
RowAdjustment, ColAdjustment: Integer); virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Loads the spreadsheet's hash tables from the temporary file.
PARAMETERS' DESCRIPTION:
AdjustAfter : The location of all cells in the cell hash table
being loaded, below and to the left of this
position, will be increased by RowAdjustment and
ColAdjustment respectively.
RowAdjustment : the row location of all cells below AdjustAfter will
be increased by this amount.
ColAdjustment : the column location of all cells to the left of
AdjustAfter will be increased by this amount
160
REMARKS:
The AdjustAfter, RowAdjustment and ColAdjustment parameters are used to
relocate the cells in the cell hash table, when adding or deleting rows
or columns.
(see TSpreadSheet.InsertColumns, TSpreadSheet.InsertRows,
TSpreadSheet.DeleteColumns, TSpreadSheet.DeleteRows)
************************************************************************
TSpreadSheet.LocateCursorWithMouse procedure
************************************************************************
DECLARATION:
procedure LocateCursorWithMouse(Event: TEvent); virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Locates the cursor wherever the mouse was clicked -- if inside the
display area --.
PARAMETERS' DESCRIPTION:
Event : the event triggered by the mouse click
REMARKS:
(see TSpreadSheet.DragCursorWithMouse)
************************************************************************
TSpreadSheet.MaxCols field
************************************************************************
DECLARATION:
MaxCols : Integer;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
(Maximum) Number of rows the spreadsheet will have.
************************************************************************
TSpreadSheet.MaxColWidth field
************************************************************************
DECLARATION:
MaxColWidth : Byte;
161
UNIT:
GLTSHEET.PAS
DESCRIPTION:
The maximum width a column can have.
REMARKS:
This is by default the maximum number of columns that can be used to
display the data in the spreadsheet.
************************************************************************
TSpreadSheet.MaxDecimalPlaces field
************************************************************************
DECLARATION:
MaxDecimalPlaces : Byte;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
The maximum number of decimal places a number can be displayed with.
************************************************************************
TSpreadSheet.MaxRows field
************************************************************************
DECLARATION:
MaxRows : Integer;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
(Maximum) Number of columns the spreadsheet will have.
************************************************************************
TSpreadSheet.MaxScreenCols field
************************************************************************
DECLARATION:
MaxScreenCols : Byte;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
The maximum number of spreadsheet columns that can be displayed in a
162
window.
************************************************************************
TSpreadSheet.Modified field
************************************************************************
DECLARATION:
Modified : Boolean;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Indicates if the spreadsheet has been modified and the modifications
have not been saved to disk.
REMARKS:
(see TSpreadSheet.SetChanged)
************************************************************************
TSpreadSheet.MoveCell procedure
************************************************************************
DECLARATION:
procedure MoveCell(OldPos: CellPos); virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Redisplays the cursor in its new position (stored in the CurrPos field)
in the spreadsheet, and if in block mode, extends the block of selected
cells to that position.
PARAMETERS' DESCRIPTION:
OldPos : the previous position of the cursor
************************************************************************
TSpreadSheet.MoveCellBlock procedure
************************************************************************
DECLARATION:
procedure MoveCellBlock; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Activates the clipboard and sets it to indicate a move operation and the
163
block to be moved.
REMARKS:
The block is not actually moved; the block will be moved when
TSpreadSheet's PasteCellBlock method is called.
************************************************************************
TSpreadSheet.MoveDown procedure
************************************************************************
DECLARATION:
procedure MoveDown; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Moves the cursor one position down.
************************************************************************
TSpreadSheet.MoveHome procedure
************************************************************************
DECLARATION:
procedure MoveHome; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Moves the cursor to the first position in the spreadsheet (column 1 :
row 1).
************************************************************************
TSpreadSheet.MoveLeft procedure
************************************************************************
DECLARATION:
procedure MoveLeft; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Moves the cursor one position to the left.
164
************************************************************************
TSpreadSheet.MovePgDown procedure
************************************************************************
DECLARATION:
procedure MovePgDown; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Moves the cursor one page down.
************************************************************************
TSpreadSheet.MovePgLeft procedure
************************************************************************
DECLARATION:
procedure MovePgLeft; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Moves the cursor one page to the left.
************************************************************************
TSpreadSheet.MovePgRight procedure
************************************************************************
DECLARATION:
procedure MovePgRight; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Moves the cursor one page to the right.
************************************************************************
TSpreadSheet.MovePgUp procedure
************************************************************************
DECLARATION:
procedure MovePgUp; virtual;
UNIT:
GLTSHEET.PAS
165
DESCRIPTION:
Moves the cursor one page up.
************************************************************************
TSpreadSheet.MoveRight procedure
************************************************************************
DECLARATION:
procedure MoveRight; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Move the cursor one position to the right.
************************************************************************
TSpreadSheet.MoveUp procedure
************************************************************************
DECLARATION:
procedure MoveUp; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Moves the cursor one position up.
************************************************************************
TSpreadSheet.NoBlankArea field
************************************************************************
DECLARATION:
NoBlankArea : Boolean;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Indicates if there is an empty area in the window.
REMARKS:
(see TSpreadSheet.BlankArea)
166
************************************************************************
TSpreadSheet.Number field
************************************************************************
DECLARATION:
Number : Byte;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
The number assigned to the spreadsheet.
REMARKS:
This number is displayed as a letter in the info area.
(see TSpreadSheet.SetNumber)
************************************************************************
TSpreadSheet.OldCurrPos field
************************************************************************
DECLARATION:
OldCurrPos : CellPos;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Used to temporarily store the position of the cursor when the
spreadsheet is not active. When the spreadsheet is activated again, the
cursor is set to the position stored in this field.
REMARKS:
(see TSpreadSheet.SetState)
************************************************************************
TSpreadSheet.OverwriteHash field
************************************************************************
DECLARATION:
OverwriteHash : TOverwriteHashTable;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Overwrite hash table that will be used to store overwrite information
167
for the cells in the spreadsheet.
************************************************************************
TSpreadSheet.OverwriteHashStart function
************************************************************************
DECLARATION:
function OverwriteHashStart: BucketRange; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Returns the number of buckets the overwrite hash table will have.
************************************************************************
TSpreadSheet.Parser function
************************************************************************
DECLARATION:
function Parser: PParserObject; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Returns a pointer to the parser object that will be used by the
spreadsheet.
REMARKS:
(see StandardParser in GLPARSER.INT, StandardSortObject,
TSpreadSheet.SortObject)
************************************************************************
TSpreadSheet.PasteBlock procedure
************************************************************************
DECLARATION:
procedure PasteBlock(DestBlock: TBlock; Formulas: Word);
virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Copies or moves a block of cells in a cell hash table to a new position.
PARAMETERS' DESCRIPTION:
DestBlock : the block where the cells will be copied or moved.
168
Formulas : bit flags indicating if formulas should be copied
literally when moved or copied to another position (see
RCopyFormulas).
$01 = copy column references literally
$02 = copy row references literally
REMARKS:
(see TSpreadSheet.PasteCellBlock)
************************************************************************
TSpreadSheet.PasteCellBlock procedure
************************************************************************
DECLARATION:
procedure PasteCellBlock; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
If the clipboard is active, this method determines the destination block
of the cells that will be copied or moved and verifies that no attempt
is being made to change a protected cell before copying or moving the
source block of cells to its new position.
REMARKS:
(see TSpreadSheet.PasteBlock, ClipBoardRec)
************************************************************************
TSpreadSheet.Print procedure
************************************************************************
DECLARATION:
procedure Print; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Prompts the user for the desired printer configuration and the prints
the file to the selected output device.
************************************************************************
TSpreadSheet.Recalc procedure
************************************************************************
DECLARATION:
procedure Recalc(Display: Boolean); virtual;
169
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Recalculates the value of each cells in the spreadsheet.
REMARKS:
This is a very simple method to recalculate the value the cells in the
spreadsheet; it could happen that a cell might not get correctly
recalculated because of information that is not updated on time.
************************************************************************
TSpreadSheet.RowArea field
************************************************************************
DECLARATION:
RowArea : TScreenArea;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Area of the window where row numbers will be displayed.
REMARKS:
(see TSpreadSheet.DisplayRows)
************************************************************************
TSpreadSheet.RowNumberSpace field
************************************************************************
DECLARATION:
RowNumberSpace : Byte;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
The number of screen columns that are used to display the row numbers.
REMARKS:
At first, this field depended on the number of rows that the spreadsheet
had. However, since the info area (just above the row numbers) must
have a constant size, this field was assigned a constant size of 6.
170
************************************************************************
TSpreadSheet.RowToY function
************************************************************************
DECLARATION:
function RowToY(Row: Integer): Byte; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Returns the location in the screen of a given column.
PARAMETERS' DESCRIPTION:
Row : the row whose location in the screen will be determined
************************************************************************
TSpreadSheet.SameCellPos function
************************************************************************
DECLARATION:
function SameCellPos(P1, P2 : CellPos) : Boolean; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Returns TRUE if two given cell positions are the same.
P1 : a cell position to be compared
P2 : a cell position to be compared
************************************************************************
TSpreadSheet.ScrollDraw procedure
************************************************************************
DECLARATION:
procedure ScrollDraw; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Redraws the spreadsheet whenever the scroll bars change.
171
************************************************************************
TSpreadSheet.SelectColumn function
************************************************************************
DECLARATION:
function SelectColumn(var Event: TEvent): Boolean; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Checks if the mouse was clicked in the headers area, determines the
column whose header was clicked and then selects the column.
PARAMETERS' DESCRIPTION:
Event : the event being evaluated and, if possible, handled by
this method
************************************************************************
TSpreadSheet.SetAreas procedure
************************************************************************
DECLARATION:
procedure SetAreas(ScrollArea: TRect); virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Sets the different display areas (info, column headers, row numbers,
cell data, cell contents, display and blank areas) of the spreadsheet.
PARAMETERS' DESCRIPTION:
ScrollArea : the area of the window where the spreadsheet will be
displayed
REMARKS:
(see TSpreadSheet.InfoArea, TSpreadSheetadsSheet.ColArea,
TSpreadSheet.RowArea, TSpreadSheet.DataArea, TSpreadSheet.ContenstArea,
TSpreadSheet.DisplayArea, TSpreadSheet.BlankArea)
************************************************************************
TSpreadSheet.SetBlankArea procedure
************************************************************************
DECLARATION:
procedure SetBlankArea; virtual;
172
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Sets the area the will be left empty in the spreadsheet.
REMARKS:
If there is no blank area, this method sets the NoBlankArea field to
TRUE; otherwise, it is set to FALSE.
(see TSpreadSheet.NoBlankArea)
************************************************************************
TSpreadSheet.SetChanged procedure
************************************************************************
DECLARATION:
procedure SetChanged(IsChanged: Boolean); virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Sets the modified state of the spreadsheet.
PARAMETERS' DESCRIPTION:
IsChanged : the modified state of the spreadsheet. TRUE indicates
that the spreadsheet has been modified since the last
save; FALSE indicates that the spreadsheet has not been
modified since the last save.
REMARKS:
(see TSpreadSheet.Modified)
************************************************************************
TSpreadSheet.SetLimit procedure
************************************************************************
DECLARATION:
procedure SetLimit(X, Y: Integer); virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Sets the scrolling limits of the spreadsheet and ajusts the scrollbars
accordingly.
173
PARAMETERS' DESCRIPTION:
X : the spreadsheet's horizontal scrolling limit
Y : the spreadsheet's vertical scrolling limit
************************************************************************
TSpreadSheet.SetLocked procedure
************************************************************************
DECLARATION:
procedure SetLocked; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Restores a cell or block of cells to the locked stated (the default
state), preventing modification of the cells when the spreadsheet is
protected.
************************************************************************
TSpreadSheet.SetNameWithMouse procedure
************************************************************************
DECLARATION:
procedure SetNameWithMouse(var Event: TEvent); virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Checks if the mouse was double-clicked in a column header; if true, it
prompts the user for a new column header.
PARAMETERS' DESCRIPTION:
Event : the event that was triggered by the mouse double-clicking
************************************************************************
TSpreadSheet.SetNumber procedure
************************************************************************
DECLARATION:
procedure SetNumber(ANumber: Byte); virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Assigns a number to the spreadsheet.
174
PARAMETERS' DESCRIPTION:
ANumber : the number of the spreadsheet.
REMARKS:
(see TSpreadSheet.Number)
************************************************************************
TSpreadSheet.SetProtection procedure
************************************************************************
DECLARATION:
procedure SetProtection(Enable, Display: Boolean); virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Enables or disables the spreadsheet's data protection.
PARAMETERS' DESCRIPTION:
Enable : indicates if data protection should be enabled or
disabled
Display : indicates if the spreadsheet should be redisplayed after
enabling or disabling data protection.
************************************************************************
TSpreadSheet.SetScreenColStop procedure
************************************************************************
DECLARATION:
procedure SetScreenColStop(NewCol: Integer); virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Sets a new screen block given an ending column.
PARAMETERS' DESCRIPTION:
NewCol : the ending column of the new screen block
REMARKS:
(see TSpreadSheet.ScreenBlock, TSpreadSheet.FindScreenColStart,
TSpreadSheet.FindScreenColStop)
175
************************************************************************
TSpreadSheet.SetScreenColStart procedure
************************************************************************
DECLARATION:
procedure SetScreenColStart(NewCol: Integer); virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Sets a new screen block given a starting column.
PARAMETERS' DESCRIPTION:
NewCol : the starting column of the new screen block
REMARKS:
(see TSpreadSheet.ScreenBlock, TSpreadSheet.FindScreenColStart,
TSpreadSheet.FindScreenColStop)
************************************************************************
TSpreadSheet.SetScreenRowStop procedure
************************************************************************
DECLARATION:
procedure SetScreenRowStop(NewRow: Integer); virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Sets a new screen block given an ending row.
PARAMETERS' DESCRIPTION:
NewRow : the ending row of the new screen block
REMARKS:
(see TSpreadSheet.ScreenBlock, TSpreadSheet.FindScreenRowStart,
TSpreadSheet.FindScreenRowStop)
************************************************************************
TSpreadSheet.SetScreenRowStart procedure
************************************************************************
DECLARATION:
procedure SetScreenRowStart(NewRow: Integer); virtual;
176
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Sets a new screen block given a starting row.
PARAMETERS' DESCRIPTION:
NewRow : the starting row of the new screen block
REMARKS:
(see TSpreadSheet.ScreenBlock, TSpreadSheet.FindScreenRowStart,
TSpreadSheet.FindScreenRowStop)
************************************************************************
TSpreadSheet.SetState procedure
************************************************************************
DECLARATION:
procedure SetState(AState: Word; Enable: Boolean); virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Changes the state flags of the spreadsheet and displays or hides the
cursor depending on whether the spreadsheet is activated or deactivated.
PARAMETERS' DESCRIPTION:
AState : the state flags that will be enabled or disabled
Enable : indicates if the given state flags should be enabled or
disabled
************************************************************************
TSpreadSheet.SetUnlocked procedure
************************************************************************
DECLARATION:
procedure SetUnlocked; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Marks a cell or group of cells as unlocked, allowing the modification of
the cells even when the spreadsheet is protected.
177
************************************************************************
TSpreadSheet.SheetProtected field
************************************************************************
DECLARATION:
SheetProtected : Boolean;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Indicates if the data in the spreadsheet is protected and cannot be
modified (except for data in cells marked as unlocked).
REMARKS:
(see TSpreadSheet.SetProtection)
************************************************************************
TSpreadSheet.SortData procedure
************************************************************************
DECLARATION:
procedure SortData; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Sorts the data by rows in the current block of selected cells, using up
to three different sort keys.
REMARKS:
If block mode is off, all the data in the spreadsheet will be selected
and sorted.
(see TSortObject, TSpreadSheet.SortObject)
************************************************************************
TSpreadSheet.SortObject function
************************************************************************
DECLARATION:
function SortObject : PSortObject; virtual;
UNIT:
GLTSHEET.PAS
178
DESCRIPTION:
Returns a pointer to the object that will be used to sort the data in
the spreadsheet.
REMARKS:
(see StandardSortObject)
************************************************************************
TSpreadSheet.Store procedure
************************************************************************
DECLARATION:
procedure Store(var S: TStream);
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Writes the spreadsheet to a stream.
PARAMETERS' DESCRIPTION:
S : the stream to which the spreadsheet will be written
************************************************************************
TSpreadSheet.StoreHashTables procedure
************************************************************************
DECLARATION:
procedure StoreHashTables(var S: TStream); virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Writes the spreadsheet's hash tables to a stream.
PARAMETERS' DESCRIPTION:
S : the stream to which the hash tables will be written
************************************************************************
TSpreadSheet.StoreTablesToTempFile procedure
************************************************************************
DECLARATION:
procedure StoreTablesToTempFile; virtual;
UNIT:
GLTSHEET.PAS
179
DESCRIPTION:
Stores the spreadsheet's hash tables to a temporary file.
REMARKS:
(see TSpreadSheet.StoreTablesToTempFile)
************************************************************************
TSpreadSheet.ToggleAutoCalc procedure
************************************************************************
DECLARATION:
procedure ToggleAutoCalc; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Toggles on and off the spreadsheet's auto calc mode.
************************************************************************
TSpreadSheet.ToggleDisplayHeaders procedure
************************************************************************
DECLARATION:
procedure ToggleDisplayHeaders; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Toggles on and off the spreadsheet's Display Headers mode.
************************************************************************
TSpreadSheet.ToggleEnd procedure
************************************************************************
DECLARATION:
procedure ToggleEnd; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
When the END key is pressed, pressing a cursor key will move the cursor
to the end of the spreadsheet in the direction of the cursor key. This
method will toggle the value of the GoToEnd field to TRUE and FALSE.
180
REMARKS:
(see TSpreadSheet.GoToEnd)
************************************************************************
TSpreadSheet.ToggleFormulaDisplay procedure
************************************************************************
DECLARATION:
procedure ToggleFormulaDisplay; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Toggles on and off the spreadsheet's Display Formulas mode.
************************************************************************
TSpreadSheet.ToogleBlockOn procedure
************************************************************************
DECLARATION:
procedure ToggleBlockOn; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Toggles on and off the spreadsheet's block mode.
************************************************************************
TSpreadSheet.TotalRows field
************************************************************************
DECLARATION:
TotalRows : ScreenRowRange;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
The number of rows currently being displayed in the spreadsheet.
************************************************************************
TSpreadSheet.TrackCursor function
************************************************************************
DECLARATION:
function TrackCursor: Boolean; virtual;
181
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Checks if the cursor is within the limits of the currently displayed
screen block. If not, it ajusts the screen block to include the
position of the cursor.
************************************************************************
TSpreadSheet.UnlockedHash field
************************************************************************
DECLARATION:
UnlockedHash : TUnlockedHashTable;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Unlocked hash table that will store which cells are marked as unlocked.
************************************************************************
TSpreadSheet.UpdateScreenBlockDisplay procedure
************************************************************************
DECLARATION:
procedure UpdateScreenBlockDisplay; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Redisplays the screen and changes the scroll bars position whenever the
screen block changes.
************************************************************************
TSpreadSheet.WidthHash field
************************************************************************
DECLARATION:
WidthHash : TWidthHashTable;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Width hash table that will be used to store the widths of the columns of
the spreadsheet.
182
************************************************************************
TSpreadSheet.WidthHashStart function
************************************************************************
DECLARATION:
function WidthHashStart:BucketRange; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Returns the number of buckets the width hash table will have.
************************************************************************
TSpreadSheet.XToCol fuction
************************************************************************
DECLARATION:
function XToCol(X: Byte): Integer; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Returns the column that includes the given position in the screen.
PARAMETERS' DESCRIPTION:
X : the screen column which will be checked to see which
spreadsheet column includes it
************************************************************************
TSpreadSheet.YToRow function
************************************************************************
DECLARATION:
function YToRow(Y: Byte): Integer; virtual;
UNIT:
GLTSHEET.PAS
DESCRIPTION:
Returns the row that is located in the given position in the screen.
PARAMETERS' DESCRIPTION:
Y : the screen row which will be checked to see which spreadsheet
row is located there
183
************************************************************************
TSpreadSheetWindow object
************************************************************************
DECLARATION:
TSpreadSheetWindow = object(TWindow)
constructor Init(Bounds: TRect; ATitle: String; ANumber:
Integer);
function GetPalette: PPalette; virtual;
procedure SizeLimits(var Min, Max: TPoint); virtual;
function StandardScrollBar(AOptions : Word): PLimScrollBar;
end; {...TSpreadSheetWindow }
UNIT:
GLWINDOW.PAS
DESCRIPTION:
This is a TWindow's descendant that can own a TSpreadSheet object. It
provides a new color palette and overrides some methods to give
additional support to a TSpreadSheet object.
************************************************************************
TSpreadSheetWindow.GetPalette function
************************************************************************
DECLARATION:
function GetPalette: PPalette; virtual;
UNIT:
GLWINDOW.PAS
DESCRIPTION:
Returns a pointer to the object's new palette.
REMARKS:
(see CSpreadSheetWindow1)
************************************************************************
TSpreadSheetWindow.Init CONSTRUCTOR
************************************************************************
DECLARATION:
constructor Init(Bounds: TRect; ATitle: String; ANumber:
Integer);
UNIT:
GLWINDOW.PAS
DESCRIPTION:
Creates and initializes the TSpreadSheetWindow object.
184
PARAMETERS' DESCRIPTION:
Bounds : the area where the TSpreadSheetWindow object will be
displayed.
ATitle : the title of the window
ANumber : the number of the window
************************************************************************
TSpreadSheetWindow.SizeLimits procedure
************************************************************************
DECLARATION:
procedure SizeLimits(var Min, Max: TPoint); virtual;
UNIT:
GLWINDOW.PAS
DESCRIPTION:
Returns in the Min and Max parameters the size limits of the window,
taking into account the size limits of a spreadsheet.
PARAMETERS' DESCRIPTION:
Min : will contain the minimum size the window can have
Max : will contain the maximum size the window can have
************************************************************************
TSpreadSheetWindow.StandardScrollBar function
************************************************************************
DECLARATION:
function StandardScrollBar(AOptions : Word): PLimScrollBar;
UNIT:
GLWINDOW.PAS
DESCRIPTION:
"Constructs, inserts, and returns a pointer to a "standard" limited
scrolling scroll bar [see TLimScrollBar] for the window. "Standard"
means the scroll bar fits onto the frame of the window without covering
corners or the resize icon."**
PARAMETERS' DESCRIPTION:
AOptions : "AOptions can be either sbHorizontal to produce a
horizontal scroll bar along the bottom of the window or
sbVertical to produce a vertical scroll bar along the
right side of the window."**
185
REMARKS:
No keyboard events are handled by a TLimScrollBar object created using
this function.
**Taken from Borland Pascal's on-line documentation.
************************************************************************
TTextCell object
************************************************************************
DECLARATION:
TTextCell = OBJECT(TCell)
Txt : LString;
constructor Init(InitLoc : CellPos; InitTxt : String);
function CellType : CellTypes; virtual;
function LegalValue : Boolean; virtual;
function Name : String; virtual;
function Format(var FHash : TFormatHashTable;
FormulasDisplayed : Boolean) : FormatType; virtual;
function Width(var FHash : TFormatHashTable;
FormulasDisplayed : Boolean) : Word; virtual;
function Overwritten(var CHash : TCellHashTable;
var FHash : TFormatHashTable; var WHash : TWidthHashTable;
var LastPos : CellPos; MaxCols : Word;
GetColWidth : GetColWidthFunc; FormulasDisplayed : Boolean) :
Word; virtual;
function ShouldUpdate : Boolean; virtual;
function HasError : Boolean; virtual;
function CurrValue : Extended; virtual;
function OverwriteStart(var FHash : TFormatHashTable;
var WHash : TWidthHashTable; GetColWidth : GetColWidthFunc;
EndCol : Word; DisplayFormulas : Boolean) : Word; virtual;
procedure EditString(MaxDecPlaces : Byte; var Input : String);
virtual;
function DisplayString(FormulasDisplayed : Boolean;
MaxDecPlaces : Byte) : String; virtual;
function FormattedString(var OHash : TOverwriteHashTable;
var FHash : TFormatHashTable; var WHash : TWidthHashTable;
GetColWidth : GetColWidthFunc; CPos : CellPos;
FormulasDisplayed : Boolean; Start : Word; ColWidth : Byte;
var CurrencyString : CurrencyStr; var ClType: CellTypes):
String; virtual;
function CopyString : String; virtual;
constructor Load(var S : TStream);
procedure Store(var S : TStream);
destructor Done; virtual;
end; {...TTextCell }
UNIT:
GLCELL.PAS
DESCRIPTION:
A TCell's descendant that stores a string.
186
************************************************************************
TTextCell.CellType function
************************************************************************
DECLARATION:
(see TCell.CellType)
UNIT:
GLCELL.PAS
************************************************************************
TTextCell.CopyString function
************************************************************************
DECLARATION:
(see TCell.CopyString)
UNIT:
GLCELL.PAS
************************************************************************
TTextCell.CurrValue function
************************************************************************
DECLARATION:
(see TCell.CurrValue)
UNIT:
GLCELL.PAS
************************************************************************
TTextCell.DisplayString function
************************************************************************
DECLARATION:
(see TCell.DisplayString)
UNIT:
GLCELL.PAS
************************************************************************
TTextCell.Done DESTRUCTOR
************************************************************************
DECLARATION:
destructor Done; virtual;
UNIT:
GLCELL.PAS
DESCRIPTION:
Performs all the necessary cleanup and disposal of the TTextCell object.
187
************************************************************************
TTextCell.EditString procedure
************************************************************************
DECLARATION:
(see TCell.EditString)
UNIT:
GLCELL.PAS
************************************************************************
TTextCell.Format function
************************************************************************
DECLARATION:
(see TCell.Format)
UNIT:
GLCELL.PAS
************************************************************************
TTextCell.FormattedString function
************************************************************************
DECLARATION:
(see TCell.FormattedString)
UNIT:
GLCELL.PAS
************************************************************************
TTextCell.HasError function
************************************************************************
DECLARATION:
(see TCell.HasError)
UNIT:
GLCELL.PAS
************************************************************************
TTextCell.Init CONSTRUCTOR
************************************************************************
DECLARATION:
constructor Init(InitLoc : CellPos; InitTxt : String);
UNIT:
GLCELL.PAS
DESCRIPTION:
Creates and initializes the TTextCell object.
188
PARAMETERS' DESCRIPTION:
InitLoc : the position of the cell in the spreadsheet.
InitTxt : the string the cell will store.
************************************************************************
TTextCell.LegalValue function
************************************************************************
DECLARATION:
(see TCell.LegalValue)
UNIT:
GLCELL.PAS
************************************************************************
TTextCell.Load CONSTRUCTOR
************************************************************************
DECLARATION:
constructor Load(var S: TStream);
UNIT:
GLCELL.PAS
DESCRIPTION:
Loads the cell's contents from disk.
PARAMETERS' DESCRIPTION:
S : the stream from which will be read the cell's contents.
************************************************************************
TTextCell.Name function
************************************************************************
DECLARATION:
(see TCell.Name)
UNIT:
GLCELL.PAS
************************************************************************
TTextCell.OverwriteStart function
************************************************************************
DECLARATION:
(see TCell.OverwriteStart)
UNIT:
GLCELL.PAS
189
************************************************************************
TTextCell.Overwritten function
************************************************************************
DECLARATION:
(see TCell.Overwritten)
UNIT:
GLCELL.PAS
************************************************************************
TTextCell.ShouldUpdate function
************************************************************************
DECLARATION:
(see TCell.ShouldUpdate)
UNIT:
GLCELL.PAS
************************************************************************
TTextCell.Store procedure
************************************************************************
DECLARATION:
procedure Store(var S: TStream);
UNIT:
GLCELL.PAS
DESCRIPTION:
Writes the cell's contents to disk.
PARAMETERS' DESCRIPTION:
S : the stream to which the cell's contents will be written.
************************************************************************
TTextCell.Txt field
************************************************************************
DECLARATION:
Txt : LString;
UNIT:
GLCELL.PAS
DESCRIPTION:
Used to store the cell's contents.
190
REMARKS:
Txt is a long string object that can store a string of any size up to
65535 characters long. In OOGrid Library(TM) v1.0, however, because of
the 255 characters limitation of the TInputLine object, it is used to
store strings up to 255 characters long.
A long string object is used because, unlike a normal string that uses
all 255 bytes even if the text stored in it is one character long, the
memory it requires depends on the length of the string.
(see GLLSTR.INT)
************************************************************************
TTextCell.Width function
************************************************************************
DECLARATION:
(see TCell.Width)
UNIT:
GLCELL.PAS
************************************************************************
TUnlockedHashTable object
************************************************************************
DECLARATION:
TUnlockedHashTable = OBJECT(THashTable)
CurrStart,
CurrStop : CellPos;
constructor Init;
function Add(NewStart, NewStop: CellPos): Boolean;
procedure CreateItem(var Item: HashItemPtr); virtual;
function Delete(DStart, DStop: CellPos): Boolean;
function Found(Item: HashItemPtr): Boolean; virtual;
function HashValue : LongInt; virtual;
function ItemSize : HashItemSizeRange; virtual;
constructor Load(var S: TStream; Total: Longint);
function Overwrite(NewStart, NewStop: CellPos): Boolean;
function Search(SPos: CellPos): Boolean;
procedure Store(var S: TStream);
destructor Done;
end; {...TUnlockedHashTable }
UNIT:
GLCELL.PAS
DESCRIPTION:
Keeps track of unlocked cells in the spreadsheet.
REMARKS:
It stores areas that are marked as unlocked.
191
(see TSpreadSheet.SetProtection, TSpreadSheet.SetUnlocked,
TSpreadSheet.SetLocked)
************************************************************************
TUnlockedHashTable.Add function
************************************************************************
DECLARATION:
function Add(NewStart, NewStop: CellPos): Boolean;
UNIT:
GLCELL.PAS
DESCRIPTION:
Adds an block (area) of cells to the unlocked hash table.
PARAMETERS' DESCRIPTION:
NewStart : The upper left corner of the area being added.
NewStop : The lower right corner of the area being added.
REMARKS:
Returns TRUE if the area was added sucessfully.
************************************************************************
TUnlockedHashTable.CreateItem procedure
************************************************************************
DECLARATION:
(see TCellHashTable.CreateItem)
UNIT:
GLCELL.PAS
************************************************************************
TUnlockedHashTable.CurrStart field
************************************************************************
DECLARATION:
CurrStart : CellPos;
UNIT:
GLCELL.PAS
DESCRIPTION:
Stores the location in the spreadsheet of the upper left corner of the
block (area) of cells that is being added to the hash table; also used
by the Search function to store the position of the cell that is being
searched.
192
REMARKS:
You will never need to access this field directly.
(see TUnlockedHashTable.CurrStop, TUnlockedHashTable.Search)
************************************************************************
TUnlockedHashTable.CurrStop field
************************************************************************
DECLARATION:
CurrStop : CellPos;
UNIT:
GLCELL.PAS
DESCRIPTION:
Stores the location in the spreadsheet of the lower right corner of the
block (area) of cells that is being added to the hash table.
REMARKS:
(see TUnlockedHashTable.CurrStart)
************************************************************************
TUnlockedHashTable.Delete procedure
************************************************************************
DECLARATION:
(see TFormatHashTable.Delete)
UNIT:
GLCELL.PAS
************************************************************************
TUnlockedHashTable.Done DESTRUCTOR
************************************************************************
DECLARATION:
destructor Done;
UNIT:
GLCELL.PAS
DESCRIPTION:
Performs the necessary cleanup and disposal of the unlocked hash table.
193
************************************************************************
TUnlockedHashTable.Found function
************************************************************************
DECLARATION:
(see TCellHashTable.Found)
UNIT:
GLCELL.PAS
************************************************************************
TUnlockedHashTable.HashValue function
************************************************************************
DECLARATION:
(see TCellHashTable.HashValue)
UNIT:
GLCELL.PAS
************************************************************************
TUnlockedHashTable.Init CONSTRUCTOR
************************************************************************
DECLARATION:
constructor Init;
UNIT:
GLCELL.PAS
DESCRIPTION:
Creates and initializes the TUnlockedHashTable object.
************************************************************************
TUnlockedHashTable.ItemSize function
************************************************************************
DECLARATION:
(see TCellHashTable.ItemSize)
UNIT:
GLCELL.PAS
************************************************************************
TUnlockedHashTable.Load CONSTRUCTOR
************************************************************************
DECLARATION:
constructor Load(var S: TStream; Total: Longint);
UNIT:
GLCELL.PAS
194
DESCRIPTION:
Loads an unlocked hash table from disk.
PARAMETERS' DESCRIPTION:
S : the stream from which the unlocked hash table will be loaded.
Total : the total number of items that will be loaded from the stream.
************************************************************************
TUnlockedHashTable.Overwrite function
************************************************************************
DECLARATION:
(see TFormatHashTable.Overwrite)
UNIT:
GLCELL.PAS
************************************************************************
TUnlockedHashTable.Search function
************************************************************************
DECLARATION:
function Search(SPos: CellPos): Boolean;
UNIT:
GLCELL.PAS
DESCRIPTION:
Checks if a cell is part of any of the areas stored in the unlocked hash
table.
PARAMETERS' DESCRIPTION:
SPos : position of the cell being checked.
REMARKS:
If Search returns TRUE, the cell is unlocked and therefore can be
modified at any time, even when the spreadsheet is protected.
(see TSpreadSheet.SetProtection)
************************************************************************
TUnlockedHashTable.Store procedure
************************************************************************
DECLARATION:
procedure Store(var S: TStream);
195
UNIT:
GLCELL.PAS
DESCRIPTION:
Writes an unlocked hash table to disk.
PARAMETERS' DESCRIPTION:
S : stream to which the unlocked hash table will be written.
************************************************************************
TValueCell object
************************************************************************
DECLARATION:
TValueCell = object(TCell)
Error : Boolean;
Value : Extended;
constructor Init(InitLoc : CellPos; InitError : Boolean;
InitValue : Extended);
function CellType : CellTypes; virtual;
function LegalValue : Boolean; virtual;
function Name : String; virtual;
function Format(var FHash : TFormatHashTable;
FormulasDisplayed : Boolean) : FormatType; virtual;
function Width(var FHash : TFormatHashTable;
FormulasDisplayed : Boolean) : Word; virtual;
function Overwritten(var CHash : TCellHashTable;
var FHash : TFormatHashTable; var WHash : TWidthHashTable;
var LastPos : CellPos; MaxCols : Word;
GetColWidth : GetColWidthFunc; FormulasDisplayed : Boolean) :
Word; virtual;
function ShouldUpdate : Boolean; virtual;
function HasError : Boolean; virtual;
function CurrValue : Extended; virtual;
function OverwriteStart(var FHash : TFormatHashTable;
var WHash : TWidthHashTable; GetColWidth : GetColWidthFunc;
EndCol : Word; DisplayFormulas : Boolean) : Word; virtual;
procedure EditString(MaxDecPlaces : Byte; var Input : String);
virtual;
function DisplayString(FormulasDisplayed : Boolean;
MaxDecPlaces : Byte) : String; virtual;
function FormattedString(var OHash : TOverwriteHashTable;
var FHash : TFormatHashTable; var WHash : TWidthHashTable;
GetColWidth : GetColWidthFunc; CPos : CellPos;
FormulasDisplayed : Boolean; Start : Word; ColWidth : Byte;
var CurrencyString : CurrencyStr; var ClType: CellTypes):
String; virtual;
function CopyString : String; virtual;
constructor Load(var S : TStream);
procedure Store(var S : TStream);
end; {...TValueCell }
UNIT:
GLCELL.PAS
196
DESCRIPTION:
A TCell's descendant that stores a number.
************************************************************************
TValueCell.CellType function
************************************************************************
DECLARATION:
(see TCell.CellType)
UNIT:
GLCELL.PAS
************************************************************************
TValueCell.CopyString function
************************************************************************
DECLARATION:
(see TCell.CopyString)
UNIT:
GLCELL.PAS
************************************************************************
TValueCell.CurrValue function
************************************************************************
DECLARATION:
(see TCell.CurrValue)
UNIT:
GLCELL.PAS
************************************************************************
TValueCell.DisplayString function
************************************************************************
DECLARATION:
(see TCell.DisplayString)
UNIT:
GLCELL.PAS
************************************************************************
TValueCell.EditString procedure
************************************************************************
DECLARATION:
(see TCell.EditString)
UNIT:
GLCELL.PAS
197
************************************************************************
TValueCell.Error field
************************************************************************
DECLARATION:
Error : Boolean;
UNIT:
GLCELL.PAS
DESCRIPTION:
Indicates if there is a numeric error in the value stored by the cell.
************************************************************************
TValueCell.Format function
************************************************************************
DECLARATION:
(see TCell.Format)
UNIT:
GLCELL.PAS
************************************************************************
TValueCell.FormattedString function
************************************************************************
DECLARATION:
(see TCell.FormattedString)
UNIT:
GLCELL.PAS
************************************************************************
TValueCell.HasError function
************************************************************************
DECLARATION:
(see TCell.HasError)
UNIT:
GLCELL.PAS
************************************************************************
TValueCell.Init CONSTRUCTOR
************************************************************************
DECLARATION:
constructor Init(InitLoc : CellPos; InitError : Boolean;
InitValue : Extended);
198
UNIT:
GLCELL.PAS
DESCRIPTION:
Creates and initializes the TValueCell object.
PARAMETERS' DESCRIPTION:
InitLoc : the position of cell in the spreadsheet.
InitError : indicates if there is an error in the value.
InitValue : the value to be stored by the cell.
************************************************************************
TValueCell.LegalValue function
************************************************************************
DECLARATION:
(see TCell.LegalValue)
UNIT:
GLCELL.PAS
************************************************************************
TValueCell.Load CONSTRUCTOR
************************************************************************
DECLARATION:
constructor Load(var S: TStream);
UNIT:
GLCELL.PAS
DESCRIPTION:
Loads the cell's contents from disk.
PARAMETERS' DESCRIPTION:
S : the stream from which will be read the cell's contents.
************************************************************************
TValueCell.Name function
************************************************************************
DECLARATION:
(see TCell.Name)
UNIT:
GLCELL.PAS
199
************************************************************************
TValueCell.OverwriteStart function
************************************************************************
DECLARATION:
(see TCell.OverwriteStart)
UNIT:
GLCELL.PAS
************************************************************************
TValueCell.Overwritten function
************************************************************************
DECLARATION:
(see TCell.Overwritten)
UNIT:
GLCELL.PAS
************************************************************************
TValueCell.ShouldUpdate function
************************************************************************
DECLARATION:
(see TCell.ShouldUpdate)
UNIT:
GLCELL.PAS
************************************************************************
TValueCell.Store procedure
************************************************************************
DECLARATION:
procedure Store(var S: TStream);
UNIT:
GLCELL.PAS
DESCRIPTION:
Writes the cell's contents to disk.
PARAMETERS' DESCRIPTION:
S : the stream to which the cell's contents will be written.
************************************************************************
TValueCell.Value field
************************************************************************
DECLARATION:
Value : Extended;
200
UNIT:
GLCELL.PAS
DESCRIPTION:
The value stored by the cell.
************************************************************************
TValueCell.Width function
************************************************************************
DECLARATION:
(see TCell.Width)
UNIT:
GLCELL.PAS
************************************************************************
TWidthHashTable object
************************************************************************
DECLARATION:
TWidthHashTable = OBJECT(THashTable)
CurrCol : Word;
CurrWidth : Byte;
DefaultColWidth : Byte;
constructor Init(InitBuckets: BucketRange;
InitDefaultColWidth: Byte);
destructor Done;
function Add(SCol : Word; NewWidth : Byte) : Boolean;
procedure Delete(Col : Word);
function Search(Col : Word) : Byte;
function HashValue : LongInt; virtual;
function Found(Item : HashItemPtr) : Boolean; virtual;
procedure CreateItem(var Item : HashItemPtr); virtual;
function ItemSize : HashItemSizeRange; virtual;
function GetDefaultColWidth : Byte;
procedure Load(var S : TStream; Total : Longint);
procedure Store(var S : TStream);
end; {...TWidthHashTable }
UNIT:
GLCELL.PAS
DESCRIPTION:
Stores column widths that are different from the default.
REMARKS:
The width hash table stores the column number and the width.
201
************************************************************************
TWidthHashTable.Add function
************************************************************************
DECLARATION:
function Add(SCol : Word; NewWidth : Byte) : Boolean;
UNIT:
GLCELL.PAS
DESCRIPTION:
Adds a new column width to the width hash table.
PARAMETERS' DESCRIPTION:
SCol : the number of the column whose width will be added to the
width hash table.
NewWidth : the value of the new width being added.
REMARKS:
Add returns TRUE if the new width was successfully added; FALSE
otherwise.
IMPORTANT! This method does not check if the new width assigned to a
column is different from the default width before adding it to the hash
table; it will add it anyway.
************************************************************************
TWidthHashTable.CreateItem function
************************************************************************
DECLARATION:
(see TCellHashTable.CreateItem)
UNIT:
GLCELL.PAS
************************************************************************
TWidthHashTable.CurrCol field
************************************************************************
DECLARATION:
CurrCol : Word;
UNIT:
GLCELL.PAS
DESCRIPTION:
Stores the number of the column whose width is being added, searched for
or deleted from the width hash table.
202
REMARKS:
You will never need to access this field directly.
************************************************************************
TWidthHashTable.CurrWidth field
************************************************************************
DECLARATION:
CurrWidth : Byte;
UNIT:
GLCELL.PAS
DESCRIPTION:
Stores the value of the width being added or searched for -- if found --
in the width hash table.
REMARKS:
You will never need to access this field directly.
************************************************************************
TWidthHashTable.DefaultColWidth field
************************************************************************
DECLARATION:
DefaultColWidth : Byte;
UNIT:
GLCELL.PAS
DESCRIPTION:
Stores the default column width.
REMARKS:
This field is accessed only by TWidthHashTable.GetDefaultColWidth. You
will never need to access this field directly.
************************************************************************
TWidthHashTable.Delete procedure
************************************************************************
DECLARATION:
procedure Delete(Col : Word);
UNIT:
GLCELL.PAS
203
DESCRIPTION:
Deletes a column width from the width hash table.
PARAMETERS' DESCRIPTION:
Col : the number of the column whose width will be deleted from the
width hash table.
************************************************************************
TWidthHashTable.Done DESTRUCTOR
************************************************************************
DECLARATION:
destructor Done;
UNIT:
GLCELL.PAS
DESCRIPTION:
Performs the necessary cleanup and disposal of the width hash table.
************************************************************************
TWidthHashTable.Found function
************************************************************************
DECLARATION:
(see TCellHashTable.Found)
UNIT:
GLCELL.PAS
************************************************************************
TWidthHashTable.GetDefaultColWidth function
************************************************************************
DECLARATION:
function GetDefaultColWidth : Byte;
UNIT:
GLCELL.PAS
DESCRIPTION:
Returns the default column width.
REMARKS:
It returns the value stored in the DefaultColWidth field.
This method is used only by the private function GetColWidth in
GLTSHEET.PAS (see GetColWidth).
204
************************************************************************
TWidthHashTable.HashValue function
************************************************************************
DECLARATION:
(see TCellHashTable.HashValue)
UNIT:
GLCELL.PAS
************************************************************************
TWidthHashTable.Init CONSTRUCTOR
************************************************************************
DECLARATION:
constructor Init(InitBuckets: BucketRange;
InitDefaultColWidth: Byte);
UNIT:
GLCELL.PAS
DESCRIPTION:
Creates and initializes the TWidthHashTable object.
PARAMETERS' DESCRIPTION:
InitBuckets : number of buckets (linked lists) the width hash
table will have.
InitDefaultColWidth : default value for a column's width.
REMARKS:
(see TWidthHashTable)
************************************************************************
TWidthHashTable.ItemSize function
************************************************************************
DECLARATION:
(see TCellHashTable.ItemSize)
UNIT:
GLCELL.PAS
************************************************************************
TWidthHashTable.Load procedure
************************************************************************
DECLARATION:
procedure Load(var S : TStream; Total : Longint);
205
UNIT:
GLCELL.PAS
DESCRIPTION:
Loads a width hash table from disk.
PARAMETERS' DESCRIPTION:
S : the stream from which the width hash table will be loaded.
Total : the total number of HashItems that will be loaded from the
stream.
************************************************************************
TWidthHashTable.Search function
************************************************************************
DECLARATION:
function Search(Col : Word) : Byte;
UNIT:
GLCELL.PAS
DESCRIPTION:
Searches in the width hash table for the width of a column.
PARAMETERS' DESCRIPTION:
Col : The number of the column whose width is being searched.
REMARKS:
If the column has not been assigned a width different from the default
width, and therefore, it is not found in the width hash table, Search
will return 0; otherwise, it will return the width of the column.
************************************************************************
TWidthHashTable.Store procedure
************************************************************************
DECLARATION:
procedure Store(var S : TStream);
UNIT:
GLCELL.PAS
DESCRIPTION:
Writes a width hash table to disk.
206
PARAMETERS' DESCRIPTION:
S : the stream to which the width hash table will be written.
************************************************************************
UpdatingTablesDialog function
************************************************************************
DECLARATION:
function UpdatingTablesDialog : PDialog;
UNIT:
GLTVR_US.PAS
DESCRIPTION:
(see CreateOOGLDialogs)
207
208
INDEX
Add 62, 74, 76, 86, 87, 98, object type ID's 3, 28
192, 202 standard help contexts
AddCell 127 3, 28
AdjustAfter 67 stream status 4
Anchor 48 string list index 4
AnchorColShifted 49 contents line 47
AnchorRowShifted 49 ContentsArea 134
Attrib 110 CopyCellBlock 135
AUTHOR CopyString 53, 69, 80, 105,
How to contact 1 187, 197
AutoCalc 127 CreateItem 62, 74, 87, 100,
BlankArea 128 192, 202
BlockOn 128 CreateOOGLDialogs 4, 9
BlockOperation 6 CreateOOGLStrings 4, 10
Bucket 65, 66, 90, 129, 133, CSheetInputLine 11
183, 205 CSpreadSheet 11
CellHash 128 CSpreadSheetBlackWhite 14
CellHashStart 129 CSpreadSheetColor 14
CellInBlock 50 CSpreadSheetMonochrome 14
CellPos 4, 6 CSpreadSheetWindow1 12
CellsProtected 129 CSpreadSheetWindow2 13
CellToFString 129 CurrBlock 135
CellType 53, 69, 80, 105, CurrCell 62, 100
187, 197 CurrCol 88, 202
CellTypes 6 CurrencyCharPart 14
Change 92, 99 CurrencyPart 15
ChangeBounds 130 CurrencyShift 15
ChangeColHeaders 130 CurrencyStr 15
ChangeColWidth 131 CurrentKeyPosition 115
ChangeHeaderDialog 6 CurrentRowPosition 116
ChangeXXXX 7 CurrFormat 74
CheckForDragging 131 CurrKey 117
ClearCurrBlock 131 CurrLoc 63
ClearScreenArea 132 CurrName 88
clipboard 7, 27, 135, 163, CurrPos 100, 135
169 CurrStart 75, 192
ClipBoardRecord 7 CurrStop 75, 193
cmXXXX 8 CurrValue 54, 69, 80, 105,
ColAdjustment 67, 160 187, 197
ColArea 132 CurrWidth 203
ColHeadersHash 132 DataArea 136
ColHeadersHashStart 133 DecPlacesPart 16
ColStart 133 DefaultColWidth 136, 203, 204
ColStartArray 9 DefaultCurrency 136
ColToX 133 DefaultDecimalPlaces 137
Column DefaultXXXX 16
default width 203-205 Delete 63, 76, 88, 101, 193,
headers 2 203
width 2, 201-204, 206 DeleteBlock 137
ColumnToString 134 DeleteCell 137
ColWidth 134 DeleteColFromHash 138
CommasPart 9 DeleteColHeaders 138
Constants DeleteColumns 139
commands 3, 27 DeleteRowFromHash 139
default 4 DeleteRows 140
help contexts 3, 27, 29 DisplayAllCells 140
209
DisplayArea 140 FormattedString 56, 71, 82,
DisplayBlankArea 141 106, 188, 198
DisplayBlock 141 FormatType 21
DisplayBlockDiff 142 Formula 82
DisplayCell 142 FormulaHash 152
DisplayCellBlock 142 FormulaOps 21
DisplayCellData 143 Formulas 2, 3
DisplayCols 143 FormulaStart 22
DisplayFormulas 144 Found 64, 76, 89, 103, 194,
DisplayHeaders 144 204
DisplayInfo 144 FStringSituationColor 152
DisplayLimit 92 General overview 1
DisplayMessage 5, 17, 19, 31 GetColWidth 22
DisplayRows 145 GetColWidthFunc 23
DisplayString 54, 70, 81, GetData 5
106, 187, 197 GetDefaultColWidth 203, 204
DisplayXXXX 18 GetFormat 152
DoAfterEndInput 145 GetFormula 82
Done 55, 64, 76, 81, 89, 102, GetPalette 113, 153, 184
145, 187, 193, 204 GetWidthDialog 23
DoneHashTables 146 GLCELL.INT 2
DragCursorWithMouse 146 GLEQUATES.PAS 3
Draw 93, 96, 146 GLLSTR.INT 191
EditString 55, 70, 81, 106, GLLSTR.PAS 1
188, 197 GLPARSER.INT 168
EditXXXX 18 GLPARSER.PAS 1
Empty 18 GLResFile 4, 23
EmptyRowsAtBottom 147 GLSORT.PAS 3
EmptyRowsAtTop 147 GLSortExit 24
EndCol 102 GLStringList 4, 24
EndModal 112 GLSUPPRT.PAS 4
EndState 112 GLTSHEET.PAS 4
EraseCellBlock 37, 148 GLTVR_US.PAS 4
EraseMessage 5, 19, 31 GLVIEWS.PAS 5
Error 81, 198 GLWINDOW.PAS 5
Execute 113 GoToCell 153
ExtendCurrBlock 35, 148 GoToDialog 24
ExtendTo 50 GoToEnd 153
FillKeyRec 117 HandleEvent 3, 93, 113, 154
FindLastPos 148 HandleInput 18, 154
FindScreenColStart 149 HasError 71, 83, 106, 188,
FindScreenColStop 149 198
FindScreenRowStart 150 HashError 57
FindScreenRowStop 150 HashItem 62, 64-67, 78
FirstItem 64 HashItems 206
FixBlockOverWrite 150 HashTable 2, 86
FixFormulaCol 19 Add 86
FixFormulaRow 20 CreateItem 86
FixOverWrite 151 HashValue 65, 77, 89, 103,
Format 55, 70, 82, 106, 188, 194, 205
198 hcCancel 28
commas 9, 21, 32 hcNo 28
currency 14-16, 21, 32 hcOk 28
decimal places 16, 21 hcXXXX 3, 25
justification 29 hcYes 28
Format bits 21 help system 12, 13
FormatDefault 151 info area 47, 145, 167, 170
FormatDialog 20 InfoArea 155
210
Init 50, 57, 65, 71, 77, 83, MovePgRight 165
89, 94, 96, 103, MovePgUp 165
107, 110, 114, 117, MoveRight 166
155, 184, 188, 194, MoveUp 166
205 Name 58, 72, 84, 107, 189,
InitClipboard 27 199
InitCommandNumber 3, 8, 27, NextItem 64, 67
46 NoBlankArea 166
InitCurrPos 156 Number 167
InitHelpContextNumber 3, 8, NumberFormatShift 31
25, 27, 46 OldCurrPos 167
InitObjectTypeID 3, 28 OldValue 95
InitStandardContextNumber 3, OOGridFileHeader 32, 47
8, 25, 28, 46 Overwrite 78, 195
input line 47 OverwriteHash 167
InputLine 28 OverwriteHashStart 168
InsertColumns 157 OverwriteStart 59, 72, 84,
InsertRows 157 108, 189, 200
InsertRowToHash 157 Overwritten 59, 72, 84, 108,
ItemSize 66, 77, 90, 103, 190, 200
194, 205 Palettes
Justification 29 CSpreadSheetBlackWhite
JustPart 29 14
KeyCols 118 CSpreadSheetColor 14
Keyposition 30 CSpreadSheetMonochrome
KeyPressed 158 14
KeySortOrder 118 standard application
KeyValue 30 palette 5, 12-14
LastKey 118 TSheetInputLine 11
LastPos 158 TSpreadSheet 11, 184
LegalValue 58, 71, 83, 107, TSpreadSheetWindow 12,
189, 199 13
Load 51, 66, 77, 83, 90, 94, Parser 168
107, 159, 189, 194, PasteBlock 168
199, 205 PasteCellBlock 135, 164, 169
LoadDelimited 159 PasteDialog 32
LoadHashTables 159 PivotFirstKey 119
LoadTablesFromTempFile 160 PivotSecondKey 119
Loc 58 PivotThirdKey 119
LocateCursorWithMouse 161 PointInArea 111
LowerRight 110 Print 4, 169
LowMemory 2, 46, 86 PrintConfigRec 4
Max 93 PrintDialog 32
MaxCols 161 PrinterConfigRec 33
MaxColWidth 161 PrintingDialog 33
MaxDecimalPlaces 162 PrintToDialog 33
MaxRows 162 QuickSort algorithm 4, 30,
MaxScreenCols 162 121
MessageLine 17, 19, 31 RBlock 34
Modified 163 RChangeHeader 34
ModifiedXXXX 31 RChangeWidth 34
MoveCell 163 RCopyFormulas 35, 169
MoveCellBlock 163 README.TXT 1
MoveDown 164 Recalc 18, 169
MoveHome 164 RedrawXXXX 35
MoveLeft 164 RegisterGLCell 35
MovePgDown 165 RegisterGLSupprt 36
MovePgLeft 165 RegisterGLTSheet 36
211
RegisterGLViews 36 SortingDialog 45
RegisterSpreadSheet 37 SortObject 4, 178
RemoveXXXX 37 SortTypes 45
RepeatChar 108 SourceCellHash 122
RepeatFirstChar 37 SplitSortBlock 122
RepeatTextChar 38 Standard application palette
Resources 3, 4 5
RFormat 38 StandardParser 168
RFormulaCell 38 StandardScrollBar 185
RGoToCell 39 StandardSortObject 4, 45
RLimScrollBar 39 Start 51
RowAdjustment 67, 160 StatusMessage 17, 96
RowArea 170 Stop 51
RowNumberSpace 170 Store 52, 68, 79, 85, 91, 95,
RowToY 171 109, 179, 190, 195,
RPrint 40 200, 206
RRepeatCell 40 StoreHashTables 179
RSheetInputLine 41 StoreTablesToTempFile 179
RSortInfo 41 Stream
RSpreadSheet 41 additional status
RTextCell 42 constants 4
RValueCell 42 registration records 3
SameCellPos 171 stRXXXX 46
ScreenColRange 43 stXXXX 46
ScreenCols 43 SwapRows 123
ScreenPos 44 sXXXX 47
ScreenRowRange 44 TBlock 4, 48
ScreenRows 44 Anchor 48, 49
ScrollDraw 171 AnchorColShifted 49
Search 67, 75, 78, 90, 104, AnchorRowShifted 49
192, 195, 206 CellInBlock 50
SearchName 91 ExtendTo 50
SelectColumn 172 Init 50
SetAreas 172 Load 51
SetBlankArea 172 Start 51
SetChanged 31, 173 Stop 51
SetData 5 Store 52
SetKeyArray 120 TCCell 2
SetLimit 173 TCell 2, 52
SetLocked 2, 174 CellType 53
SetNameWithMouse 174 CopyString 53
SetNumber 174 CurrValue 54
SetPivot 121 DisplayString 54
SetProtection 175 Done 55
SetScreenColStart 176 EditString 55
SetScreenColStop 175 Format 55
SetScreenRowStart 176 FormattedString 16, 56
SetScreenRowStop 176 HashError 57
SetState 114, 177 Init 57
SetUnlocked 2, 177 LegalValue 58
SheetProtected 178 Loc 58
ShouldUpdate 60, 72, 84, 108, Name 58
190, 200 OverwriteStart 59
SizeLimits 185 Overwritten 59
Sort 121 ShouldUpdate 60
SortBlock 122 Width 61
SortData 178 TCellHashTable 2, 61, 66
SortDialog 45 Add 62
212
CreateItem 62 Format 82
CurrCell 62 FormattedString 82
CurrLoc 63 Formula 82
Delete 63 GetFormula 82
Done 64 HasError 83
FirstItem 64 Init 83
Found 64, 65 LegalValue 83
HashValue 65 Load 83
Init 65 Name 84
ItemSize 66, 77 OverwriteStart 84
Load 66, 77 Overwritten 84
NextItem 67 ShouldUpdate 84
Search 65, 67 Store 85
Store 68 Value 85
TCHASH.INT 66, 86 Width 85
TCHASH.PAS 1, 2 THashTable 2, 3, 85
TColumnHeadersHashTable 2 Add 86
TCUTIL.PAS 1 THeadersHashTable 86
TEmptyCell 2, 68 Add 87
CellType 69 CreateItem 87
CopyString 69 CurrCol 88
CurrValue 69 CurrName 88
DisplayString 70 Delete 88
EditString 70 Done 89
Format 70 Found 89
FormattedString 71 HashValue 89
HasError 71 Init 89
Init 71 ItemSize 90
LegalValue 71 Load 90
Name 72 Search 90
OverwriteStart 72 SearchName 91
Overwritten 72 Store 91
ShouldUpdate 72 TInputLine 5
Width 73 TLimScrollBar 5, 16, 91
TFormatHashTable 2, 73 Change 92
Add 74, 76 DisplayLimit 92
CreateItem 74 Draw 93
CurrFormat 74 HandleEvent 93
CurrStart 75 Init 94
CurrStop 75 Load 94
Delete 76 OldValue 95
Done 76 Store 95
Found 76 TMessageLine 5, 17, 19, 31,
HashValue 77 95
Init 77 Draw 96
ItemSize 77 Init 96
Load 77 StatusMessage 17, 96
Overwrite 78 ToggleAutoCalc 180
Search 75, 78 ToggleClipBoardOff 97
Store 79 ToggleClipBoardOn 97
TFormulaCell 2 ToggleDisplayHeaders 180
CellType 80 ToggleEnd 180
CopyString 80 ToggleFormulaDisplay 181
CurrValue 80 ToogleBlockOn 181
DisplayString 81 Total 67
Done 81 TotalRows 181
EditString 81 TOverWriteHashTable 2, 23, 98
Error 81 Add 98
213
Change 99 PivotFirstKey 119
CreateItem 100 PivotSecondKey 119
CurrCell 100 PivotThirdKey 119
CurrPos 100 SetKeyArray 120
Delete 101 SetPivot 121
Done 102 Sort 121
EndCol 102 SortBlock 122
Found 103 SourceCellHash 122
HashValue 103 SplitSortBlock 122
Init 103 SwapRows 123
ItemSize 103 TSpreadsheet 2-4, 14, 16, 24,
Search 104 47, 123, 184
TrackCursor 181 AddCell 127
TRepeatCell 2, 104 AutoCalc 127
CellType 105 BlankArea 128
CopyString 105 BlockOn 128
CurrValue 105 CellHash 128
DisplayString 106 CellHashStart 129
EditString 106 CellsProtected 129
Format 106 CellToFString 129
FormattedString 106 ChangeBounds 130
HasError 106 ChangeColHeaders 130
Init 107 ChangeColWidth 131
LegalValue 107 CheckForDragging 131
Load 107 ClearCurrBlock 131
Name 107 ClearScreenArea 132
OverwriteStart 108 ColArea 132
Overwritten 108 ColHeadersHash 132
RepeatChar 108 ColHeadersHashStart 133
ShouldUpdate 108 ColStart 133
Store 109 ColToX 133
Width 109 ColumnToString 134
TScreenArea 4, 109 ColWidth 134
Attrib 110 ContentsArea 134
Init 110 CopyCellBlock 135
LowerRight 110 CurrBlock 135
PointInArea 111 CurrPos 135, 145, 163
UpperLeft 111 DataArea 136
TScrollBar 5 DefaultColWidth 136
Draw 93 DefaultCurrency 136
Max 93 DefaultDecimalPlaces 137
TSheetInputLine 5, 10, 111 DeleteBlock 137
EndModal 112 DeleteCell 137
EndState 112, 113 DeleteColFromHash 138
Execute 113 DeleteColHeaders 138
GetPalette 113 DeleteColumns 139
HandleEvent 113 DeleteRowFromHash 139
Init 114 DeleteRows 140
SetState 114 DisplayAllCells 140
TSortObject 3, 115 DisplayArea 140
CurrentKeyPosition 115 DisplayBlankArea 141
CurrentRowPosition 116 DisplayBlock 141
CurrKey 117 DisplayBlockDiff 142
FillKeyRec 117 DisplayCell 142
Init 117 DisplayCellBlock 142
KeyCols 118 DisplayCellData 143
KeySortOrder 118 DisplayCols 143
LastKey 118, 121 DisplayFormulas 144
214
DisplayHeaders 144 MovePgUp 165
DisplayInfo 144 MoveRight 166
DisplayRows 145 MoveUp 166
DoAfterEndInput 145 NoBlankArea 166, 173
Done 145 Number 167
DoneHashTables 146 OldCurrPos 167
DragCursorWithMouse 146 OverwriteHash 167
Draw 146 OverwriteHashStart 168
EmptyRowsAtBottom 147 Parser 168
EmptyRowsAtTop 147 PasteBlock 168
EraseCellBlock 37, 148 PasteCellBlock 135, 164,
ExtendCurrBlock 35, 148 169
FindLastPos 148 Print 4, 16, 169
FindScreenColStart 149 Recalc 18, 169
FindScreenColStop 149 RowArea 170
FindScreenRowStart 150 RowNumberSpace 170
FindScreenRowStop 150 RowToY 171
FixBlockOverWrite 150 SameCellPos 171
FixOverWrite 151 ScrollDraw 171
FormatDefault 151 SelectColumn 172
FormulaHash 152 SetAreas 172
FStringSituationColor SetBlankArea 172
152 SetChanged 31, 173
GetFormat 152 SetLimit 173
GetPalette 153 SetLocked 2, 174
GoToCell 153 SetNameWithMouse 174
GoToEnd 153 SetNumber 174
HandleEvent 3, 154 SetProtection 175
HandleInput 18, 154 SetScreenColStart 176
InfoArea 155 SetScreenColStop 175
Init 155 SetScreenRowStart 176
InitCurrPos 156 SetScreenRowStop 176
InsertColumns 157 SetState 177
InsertRows 157 SetUnlocked 2, 177
InsertRowToHash 157 SheetProtected 178
KeyPressed 158 SortData 178
LastPos 158 SortObject 4, 178
Load 159 Store 179
LoadDelimited 159 StoreHashTables 179
LoadHashTables 159 StoreTablesToTempFile
LoadTablesFromTempFile 179
160 ToggleAutoCalc 180
LocateCursorWithMouse ToggleDisplayHeaders 180
161 ToggleEnd 180
MaxCols 161 ToggleFormulaDisplay 181
MaxColWidth 161 ToogleBlockOn 181
MaxDecimalPlaces 162 TotalRows 181
MaxRows 162 TrackCursor 181
MaxScreenCols 162 UnlockedHash 182
Modified 163 UpdateScreenBlockDisplay
MoveCell 163 182
MoveCellBlock 163 WidthHash 182
MoveDown 164 WidthHashStart 183
MoveHome 164 XToCol 183
MoveLeft 164 YToRow 183
MovePgDown 165 TSpreadSheetWindow 5, 12, 13,
MovePgLeft 165 184
MovePgRight 165 GetPalette 184
215
Init 184 ShouldUpdate 200
SizeLimits 185 Store 200
StandardScrollBar 185 Value 200
TStringList 24, 47 Width 201
TTextCell 2, 186 TView 5
CellType 187 TWidthHashTable 2, 201
CopyString 187 Add 202
CurrValue 187 CreateItem 202
DisplayString 187 CurrCol 202
Done 187 CurrWidth 203
EditString 188 DefaultColWidth 203, 204
Format 188 Delete 203
FormattedString 188 Done 204
HasError 188 Found 204
Init 188 GetDefaultColWidth 203,
LegalValue 189 204
Load 189 HashValue 205
Name 189 Init 205
OverwriteStart 189 ItemSize 205
Overwritten 190 Load 205
ShouldUpdate 190 Search 206
Store 190 Store 206
Txt 190 TWindow 5
Width 191 Txt 190
TUnlockedCellHashTable 2 UnlockedHash 182
Search 192 UpdateScreenBlockDisplay 182
TUnlockedHashTable 191 UpdatingTablesDialog 207
Add 192 UpperLeft 111
CreateItem 192 Value 85, 200
CurrStart 192 Width 61, 73, 85, 109, 191,
CurrStop 193 201
Delete 193 WidthHash 182
Done 193 WidthHashStart 183
Found 194 XToCol 183
HashValue 194 YToRow 183
Init 194
ItemSize 194
Load 194
Overwrite 195
Search 195
Store 195
Tutorial 1
TValueCell 2, 196
CellType 197
CopyString 197
CurrValue 197
DisplayString 197
EditString 197
Error 198
Format 198
FormattedString 198
HasError 198
Init 198
LegalValue 199
Load 199
Name 199
OverwriteStart 200
Overwritten 200
216